如何仅在"id“上合并/加入这两个数据格式。制作3个新的数据格式:
(
在Python中使用。
第一数据帧(DF1)
| id | name |
|-----------|-------|
| 1 | Mark |
| 2 | Dart |
| 3 | Julia |
| 4 | Oolia |
| 5 | Talia |第二数据帧(DF2)
| id | salary |
|-----------|--------|
| 1 | 20 |
| 2 | 30 |
| 3 | 40 |
| 4 | 50 |
| 6 | 33 |
| 7 | 23 |
| 8 | 24 |
| 9 | 28 |我的解决方案
R1 =pd.merge(DF1, DF2, on='id', how='inner')我不确定这是获得R2和R3的最简单的方法
R2应该看起来像
| id | name |
|-----------|-------|
| 5 | Talia |R3应该如下所示:
| id | salary |
|-----------|--------|
| 6 | 33 |
| 7 | 23 |
| 8 | 24 |
| 9 | 28 |发布于 2020-07-31 01:14:05
您可以在indicator中打开merge并查找相应的值:
total_merge = df1.merge(df2, on='id', how='outer', indicator=True)
R1 = total_merge[total_merge['_merge']=='both']
R2 = total_merge[total_merge['_merge']=='left_only']
R3 = total_merge[total_merge['_merge']=='right_only']Update:Ben的建议如下所示:
dfs = {k:v for k,v in total_merge.groupby('_merge')}然后你可以做,举个例子:
dfs['both']https://stackoverflow.com/questions/63184392
复制相似问题