替换pandas数据fram中的部分字符串

2024-09-28 21:31:49 发布

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

我有pandas数据框,需要用另一个值替换vale的一部分

例如。我有

HF - Antartica
HF - America
HF - Asia

其中我想替换HF -部分 因此,结果将是

Hi Funny Antartica
Hi Funny America
Hi Funny Asia

我试过pd.replace()但它不起作用,因为我只需要替换字符串的一部分,而不是整个字符串


Tags: 数据字符串pandashireplacefunnypdhf
3条回答

我想再跟大家分享一件非常重要的事情,你可以用空格代替句号带“.”正常全停

df['label']=df.label.replace({"\. ": "."},regex=True)

要添加到@jezrael的答案中,您需要包含regex=True,否则它将直接匹配。此外,这里它还替换了数据框中所有列的值。如果不打算这样做,可以过滤到列,然后替换。要替换数据帧中的所有值,请尝试:

df.replace('HF', 'Hi Funny', regex=True)

您还可以提供基于列表的模式和替换值。文档here中提供了完整的选项集。

因此,如果数据帧是:

>df = pd.DataFrame({'Column': ['HF - Antartica', 'HF - America', 'HF - Asia']})
>df.replace('HF', 'Hi Funny', regex=True)

应打印:

                 Column
0  Hi Funny - Antartica
1    Hi Funny - America
2       Hi Funny - Asia

看来你需要^{}

print (df)
              val
0  HF - Antartica
1    HF - America
2       HF - Asia

print (df.val.replace({'HF -':'Hi'}, regex=True))
0    Hi Antartica
1      Hi America
2         Hi Asia
Name: val, dtype: object

^{}类似的解决方案:

print (df.val.str.replace('HF -', 'Hi'))
0    Hi Antartica
1      Hi America
2         Hi Asia
Name: val, dtype: object

相关问题 更多 >