替换pandas数据帧中的字符串

时间:2016-01-10 05:19:01

标签: python pandas replace dataframe

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

3 个答案:

答案 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']]

不确定哪个更快。