【发布时间】:2021-10-13 21:32:19
【问题描述】:
我有多个具有 ID 和值的数据框,我正在尝试合并它们,以便每个 ID 在其行中都有所有值。
| ID | Value |
|---|---|
| 1 | 10 |
| 3 | 21 |
| 4 | 12 |
| 5 | 43 |
| 7 | 11 |
然后我有另一个数据框:
| ID | Value2 |
|---|---|
| 1 | 12 |
| 2 | 14 |
| 4 | 55 |
| 6 | 23 |
| 7 | 90 |
我想以某种方式合并这两者值为空。这就是我的结果:
| ID | Value | Value2 |
|---|---|---|
| 1 | 10 | 12 |
| 3 | 21 | - |
| 4 | 12 | 55 |
| 5 | 43 | - |
| 7 | 11 | 90 |
| 2 | - | 14 |
| 6 | - | 23 |
希望这是有道理的。我真的不在乎身份证号码的顺序,它们可以排序或不排序。我的目标是能够为每个 ID 创建字典,其中“Value”、“Value2”、“Value3...”作为键,对应的实际值数字作为键值。如果需要任何说明,请告诉我。
【问题讨论】:
-
查看accepted answer 中关于 FULL OUTER JOIN 的部分。
merged_df = pd.merge(df1, df2, how='outer', on='ID')。如果您想要实际的破折号而不是NaN,请添加fillna。merged_df = pd.merge(df1, df2, how='outer', on='ID').fillna('-')
标签: python pandas dataframe merge