查找并替换熊猫

时间:2019-02-24 10:06:52

标签: python pandas

我有一个带有名称的数据框

aaaaxxxdddd
dddxbbb
aaaaxxxcccc

我想说字符串是否包含“ xxx”,然后将“ a”替换为“ b”

给予

bbbbxxxdddd
dddxbbb
bbbbxxxcccc

我有2位代码,但不知道如何将它们放在一起

if df['col'].str.contains('xxx')
 df['col'] = df['col'].map(lambda x: str.replace(x, 'a',"b"))

1 个答案:

答案 0 :(得分:3)

使用DataFrame.loc并按两个大小的布尔掩码过滤行以提高性能-replace仅适用于适合的行:

m = df['col'].str.contains('xxx')
df.loc[m, 'col'] = df.loc[m, 'col'].str.replace('a',"b")

print (df)
           col
0  bbbbxxxdddd
1      dddxbbb
2  bbbbxxxcccc

另一种解决方案是使用list comprehension

df['col'] = [x.replace('a',"b") if 'xxx' in x else x for x in df['col']]