Pandas数据帧根据其他列值将函数应用于列字符串

时间:2016-04-03 09:41:41

标签: python pandas

我想从col'A'删除col'B'中的所有字符串实例,如下所示:

col A                 col B    col C
1999 toyota camry     camry    1999 toyota 
2003 nissan pulsar    pulsar   20013 nissan

我如何使用熊猫这样做?如果它是一个固定值(不依赖于另一列),我会使用:

df['col C'] = df['col A'].str.replace('value-to-replace','')

2 个答案:

答案 0 :(得分:3)

给出DataFrame

df = pd.DataFrame(
    {
        'A': ['1999 toyota camry', '2003 nissan pulsar'],
        'B': ['camry', 'pulsar']
    }
)

你可以在行轴上df.apply并执行替换:

df['C'] = df.apply(lambda L: L.A.replace(L.B, ''), axis=1)

这将给你:

                    A       B             C
0   1999 toyota camry   camry  1999 toyota 
1  2003 nissan pulsar  pulsar  2003 nissan 

答案 1 :(得分:0)

假设您有一个数据框:

df

               col A    col B
0   1999 toyota camry   camry
1   2003 nissan pulsar  pulsar

然后你可以按照以下步骤进行:

df['col C'] = [el[0].replace(el[1],'') for el in zip(df['col A'],df['col B'])]
df

                col A   col B         col C
0   1999 toyota camry   camry   1999 toyota
1   2003 nissan pulsar  pulsar  2003 nissan