Pandas带出列中以符号开头的所有字符串+

2024-05-20 20:46:23 发布

您现在位置:Python中文网/ 问答频道 /正文

    value      result
1    fish      +d de hzd +po
2    duck      +g lo kju +okz -kji
3    mouse     +z gh +k
4    rabbit    +bhh uj +okk
5    donky     -de thb +thy

预期数据应如下所示:

   value      result
1    fish      de hzd 
2    duck      lo kju 
3    mouse     gh 
4    rabbit    uj
5    donky     thb 

我试过了

df["result"] = [x.lstrip("+- + aAbBcC") for x in df["result"]

但它只在第一个字符串出现时删除:

    value      result
1    fish      de hzd +po
2    duck      lo kju +okz -kji
3    mouse     gh +k
4    rabbit    uj +okk
5    donky     thb +thy

有没有办法解决这个问题,以获得预期的数据?多谢各位


Tags: lovaluederesultghporabbitduck
3条回答
" ".join([ el for el in df["result"].split() if el.isalpha()]) this should help.

我们可以尝试使用str.replacestr.strip

df["result"] = df["result"].str.replace(r'\s*[+-]\S+\s*', '').str.strip()
print(df)

这张照片是:

    value  result
0    fish  de hzd
1    duck  lo kju
2   mouse      gh
3  rabbit      uj
4  donkey     thb
df['result'].replace(to_replace='[+-]\w+', value='', regex=True,inplace=True)
df['result']=df['result'].str.strip()
print(df)

印刷品:

    value  result
0    fish  de hzd
1    duck  lo kju
2   mouse      gh
3  rabbit      uj
4   donky     thb

相关问题 更多 >