我确定这个问题可能在SO
中的某个地方,但是我在任何地方都找不到。如何在merge
中pandas 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
答案 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