繁体   English   中英

替换pandas数据帧中的字符串

[英]replace string in pandas dataframe

我有一个包含多列的数据框。 我想查看一列,如果列中的任何字符串包含@,我想用另一个字符串替换它们。 我该怎么做呢?

pandas中的数据框由列系列组成 - Panda docs链接

我将使用正则表达式,因为它很有用,每个人都需要练习,包括我自己! Panda文档用于文本操作

注意str.replace。 你想要的正则表达式字符串是这个(它适用于我):'。* @ +。*'表示“任何字符(。)零次或多次(*),然后是@ 1次或更多次(+)跟随任何字符(。)零次或多次(*)

df['column'] = df['column'].str.replace('.*@+.*', 'replacement')

应该工作,'替换'是你想要放入的任何字符串。

假设你调用了数据帧df ,你可以这样做:

pd.DataFrame(map(lambda col: map(lambda x: 'anotherString' if '@' in x else x, df[col]), df.columns)).transpose()

我的建议:

df['col'] = ['new string' if '@' in x else x for x in df['col']]

不确定哪个更快。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM