我有一个包含多列的数据框。我想查看一列,如果列中的任何字符串包含@,我想用另一个字符串替换它们。我该怎么做呢?
答案 0 :(得分:7)
pandas中的数据框由一系列列组成 - Panda docs link
我将使用正则表达式,因为它很有用,每个人都需要练习,包括我自己! Panda docs for text manipulation
注意str.replace。你想要的regex字符串是这个(它对我有用):'。* @ +。*'表示“任何字符(。)零次或多次(*),后跟@ 1次或更多次(+)后跟任何字符(。)零次或多次(*)
df['column'] = df['column'].str.replace('.*@+.*', 'replacement')
应该有效,“替换”是你想放入的任何字符串。
答案 1 :(得分:3)
假设您调用了数据框df
,您可以执行以下操作:
pd.DataFrame(map(lambda col: map(lambda x: 'anotherString' if '@' in x else x, df[col]), df.columns)).transpose()
答案 2 :(得分:3)
我的建议:
df['col'] = ['new string' if '@' in x else x for x in df['col']]
不确定哪个更快。