python - 2个具有不同主键的数据框
问题描述
所以我一直在试图找到一个解决方案来合并 2 个数据框。主键有时匹配,有时它们在 DF1 但不在 DF2 和 DF2 但不在 DF1 上。我希望显示所有行和 ID,并为未出现的值提供“-”。对于确实出现在两者中的值,我希望它们连接在同一行中,如 DF3 所示:
>>>DF1 >>>DF2
ID Apples Oranges Transaction ID Milk Meat Transaction
1 2 1 Credit 1 2 3 Cash
3 3 4 Debit 2 7 2 Cash
5 2 3 Cash 6 2 3 Cash
>>>DF3
ID Apples Oranges Transaction1 Milk Meat Transaction2
1 2 1 Credit 2 3 Cash
2 - - - 7 2 Cash
3 3 4 Debit - - -
5 2 3 Cash - - -
6 - - - 2 3 Cash
解决方案
看起来像一个基本的外连接,以及一个用于替换NaN
值的 fillna()'-'
DF1.merge(df2, on='ID', how='outer').fillna('-').sort_index()
ID Apples Oranges Transaction_x Milk Meat Transaction_y
1 2 1 Credit 2 3 Cash
2 - - - 7 2 Cash
3 3 4 Debit - - -
5 2 3 Cash - - -
6 - - - 2 3 Cash
推荐阅读
- angular - TypeError:无法读取未定义的属性“地图”:带有角度日历的火力
- c++ - 运行项目的 exe 文件时未加载 .csv
- javascript - Onclick history.push 在子组件中反应。- 警告:在现有状态转换期间无法更新(例如在 `render` 中)
- php - 如何使用 PHP 将输出数组转换为字符串或变量?
- c++ - 我的 NQueens 问题代码中的错误是什么?
- java - 使用嵌套的 for-each 删除元素时出现 ConcurrentModificationException
- javascript - JS - 数组项不可用
- php - X-Editable 添加分组到下拉菜单
- rust - Rust Traits - 我如何在不消耗它的情况下使用它?
- reactjs - React Native Expo:如何使用 Firebase 从集合中的多个文档中查询选择字段?