如何在熊猫df列中合并特定值

时间:2018-07-27 04:23:04

标签: python pandas

我确定这个问题可能在SO中的某个地方,但是我在任何地方都找不到。如何在mergepandas column个特定值?对于下面的df,我只想在merge中的Col A,B中的Foo,Bar值中保留所有其他内容。

import pandas as pd

d = ({
    'A' : ['Foo','No'],
    'B' : ['Bar','Bar'],
   })

df = pd.DataFrame(data=d)

如果我这样做:

df["A"] = df["A"].map(str) + df["B"] 

        A    B
0  FooBar  Bar
1   NoBar  Bar

我希望在哪里输出:

        A    B
0  FooBar     
1      No  Bar

2 个答案:

答案 0 :(得分:0)

IIUC,

idx=(df.A == 'Foo' )& (df.B == 'Bar')
df.loc[idx, 'A']  = df.loc[idx, 'A'] + df.loc[idx, 'B']
df.loc[idx, 'B'] = ''

    A       B
0   FooBar  
1   No      Bar

答案 1 :(得分:0)

使用:

mask = (df[['A', 'B']].values == ['Foo','Bar']).all(axis=1)

df['A'] = np.where(mask, df["A"] + df["B"], df['A'])
df['B'] = np.where(mask, '', df["B"])
print (df)

        A    B
0  FooBar     
1      No  Bar