【问题标题】:Merging two data frames with origins合并两个具有源的数据框
【发布时间】:2018-07-16 07:46:03
【问题描述】:
假设我有以下两个数据框 df_1 和 df_2 并希望将它们与一个附加列合并,该列说明该行是否存在于 df_1、df_2 或两者中。使用合并时有什么方法可以直接做到这一点?
df_1
df_2
我想要的数据框:
【问题讨论】:
-
如果我的回答对您有帮助,请不要忘记accept 它 - 单击答案旁边的复选标记 (✓) 将其从灰色切换为已填充。谢谢。跨度>
标签:
python
pandas
merge
merging-data
【解决方案1】:
在merge 中使用参数indicator 并为预期的输出添加map by 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