python - 合并数据框中的相同列
问题描述
我有两个数据框
第一个数据帧,df1
UserMasterId Status Count
0 1296.0 5 5
1 1316.0 5 9
2 1325.0 5 14
3 1332.0 5 5
4 1337.0 5 44
5 1342.0 5 2
6 1344.0 5 18
第二个数据帧,df2
UserMasterId Status Count
0 1325.0 0 2
1 1332.0 0 1
2 1337.0 0 1
3 1342.0 0 3
4 1344.0 0 1
在这里,我们在两个数据框中都有相同的 ID ..
当我使用Concat时,
result = pd.concat([df1, df2], axis=1, sort=True)
result
我得到的输出是,
UserMasterId Status Count UserMasterId Status Count
0 1296.0 5 5 1325.0 0.0 2.0
1 1316.0 5 9 1332.0 0.0 1.0
2 1325.0 5 14 1337.0 0.0 1.0
3 1332.0 5 5 1342.0 0.0 3.0
4 1337.0 5 44 1344.0 0.0 1.0
5 1342.0 5 2 NaN NaN NaN
6 1344.0 5 18 NaN NaN NaN
当我使用合并时,
result = pd.merge(df1,df2[['UserMasterId', 'Count','Status']],on='UserMasterId')
result.head()
输出是,
UserMasterId Status_x Count_x Count_y Status_y
0 1325.0 5 14 2 0
1 1332.0 5 5 1 0
2 1337.0 5 44 1 0
3 1342.0 5 2 3 0
4 1344.0 5 18 1 0
这将删除 df1 和 df2 中不常见的 ID。
我不想删除两个数据框不通用的 ID。我想要这样的输出,
UserMasterId Status_x Count_x Count_y Status_y
0 1296.0 5 5 NA NA
1 1316.0 5 9 NA NA
2 1325.0 5 14 2 0
3 1332.0 5 5 1 0
4 1337.0 5 44 1 0
5 1342.0 5 2 3 0
6 1344.0 5 18 1 0
谁能帮我吗?
解决方案
使用带有外部连接的合并应该做得很好,对吧?但是我没有测试它
result = pd.merge(df1,df2[['UserMasterId', 'Count','Status']],on='UserMasterId', how='outer')
推荐阅读
- html - 当我之间有空间(使用不透明度)时,如何使 div 在悬停时保持可见?
- unity3d - Unity:新的 InputSystem 和旧的 EventSystem 之间的冲突
- mysql - SQL 查询忽略 WHERE 子句并给出奇怪的结果
- python - 在 python shell 中,导入函数的更改不会更改输出?
- c# - 两个字节总和是什么意思
- python - 在字符串中使用 pandas 系列中的标量作为绘图标签
- c# - C# Collection ConcurrentBag 在并发更新期间反向迭代
- database - 过滤显示mongodb文档
- r - For循环替换R中的NA值
- symfony - 可以实现这个特定的 API 平台过滤器吗?