1

假设我有以下两个数据框 df_1 和 df_2 并希望将它们与一个附加列合并,该列说明该行是否存在于 df_1、df_2 或两者中。有什么方法可以在使用合并时直接执行此操作?

df_1

数据框 1

df_2

在此处输入图像描述

我想要的数据框:

在此处输入图像描述

4

1 回答 1

3

使用参数indicatorinmerge和为预期的输出添加mapdict

df = pd.merge(df1, df2, how='outer', indicator='origin')
print (df)
   Index   x  y      origin
0     20   5  8   left_only
1     35   4  7   left_only
2     55   3  2        both
3     60  12  1        both
4     22   4  3  right_only
5     30  12  6  right_only

d = {'left_only':'1', 'right_only':'2', 'both':'1 & 2'}
df['origin'] = df['origin'].map(d)
print (df)
   Index   x  y origin
0     20   5  8      1
1     35   4  7      1
2     55   3  2  1 & 2
3     60  12  1  1 & 2
4     22   4  3      2
5     30  12  6      2
于 2018-02-06T09:43:57.597 回答