假设我有以下两个数据框 df_1 和 df_2 并希望将它们与一个附加列合并,该列说明该行是否存在于 df_1、df_2 或两者中。有什么方法可以在使用合并时直接执行此操作?
df_1
df_2
我想要的数据框:
假设我有以下两个数据框 df_1 和 df_2 并希望将它们与一个附加列合并,该列说明该行是否存在于 df_1、df_2 或两者中。有什么方法可以在使用合并时直接执行此操作?
df_1
df_2
我想要的数据框:
使用参数indicator
inmerge
和为预期的输出添加map
:dict
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