【问题标题】:Merging two dataframes while considering overlaps and missing indexes [duplicate]在考虑重叠和缺失索引的同时合并两个数据帧[重复]
【发布时间】: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,请添加fillnamerged_df = pd.merge(df1, df2, how='outer', on='ID').fillna('-')

标签: python pandas dataframe merge


【解决方案1】:

您可以使用 pandas 的 merge 方法(请参阅此处查看 help 页面):

import pandas as pd
df1.merge(df2, how='outer', on='ID')

指定“外部”将使用两个数据帧中的联合键。

【讨论】:

  • 我认为您在这里寻找外连接,因为他们希望包含来自正确数据框中但不在 let 中的值。
  • 好收获。我会相应地修改我的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-05
  • 1970-01-01
  • 2015-02-10
  • 1970-01-01
  • 1970-01-01
  • 2020-04-20
相关资源
最近更新 更多