如何根据不同 pandas 列中的值替换字符串

How to replace a string based upon the value in a different pandas column

我正在清理数据集,如果 B 列中的值与特定字符串匹配,我需要删除 A 列中的格式错误。

A       B
foo//,  cherry
bar//,  orange
bar//,  cherry
bar     apple

所以在这种情况下,如果 B 列是 'cherry',我想将 A 列中的“//,”替换为“,”。最终结果如下所示。

A       B
foo,    cherry
bar//,  orange
bar,    cherry
bar     apple

非常感谢任何建议

我会先检查 B 列中哪些行包含樱桃:

rows = df['B'].str.contains('cherry')

然后在 A 列以外的这些行中将“//”替换为“”。

您可以简单地编写一个函数,将一行作为 series,检查 cherry 条件,修复带有 str.replace 和 returns 行的字符串。您可以使用 df.apply 而不是 axis=1

def fix(s):
    if s['B']=='cherry':
        s['A']=s['A'].replace('//,',',')
    return s

df.apply(fix, axis=1)
        A       B
0    foo,  cherry
1  bar//,  orange
2    bar,  cherry
3     bar   apple