【问题标题】:Pandas Join not providing the exact results熊猫加入未提供确切结果
【发布时间】:2020-03-12 20:15:11
【问题描述】:

我有两个数据框 df1df2。我想将所有列加入到df1,其中两列来自df2

print(df1.shape[0])
# 344
print(df2.shape[0])
# 3577

df3 = pd.merge(df1, df2[['latitude', 'longitude', 'code']],
      how ='left', left_on=['LOCATION'], right_on=['code'])

print(df3.shape[0])
# 1740

在我的输出数据框中,我只需要来自 df1 的 344 条记录以及来自 df2 的列。

我的代码有什么问题?

【问题讨论】:

  • 为什么分配给.shape
  • 您的加入中出现了重复项。 df2 中有超过 1 条记录对应 df1 中的 1 条记录
  • @FatihAkici,我从 df2 中删除了重复项并进行了内部连接,现在我得到了 313 条记录,其中 df1 少了 30 条。
  • @DYZ,它有很多记录。你在问什么
  • @ashokeapen 这意味着您在df1 中有 344-313 = 31 个LOCATIONs,它们在codes 中的df2 中不存在。这是数据的错,而不是你的代码......

标签: python pandas dataframe join merge


【解决方案1】:

第二个数据框(df2) 具有导致问题的重复值。我删除了重复的值并加入了df1df2。现在可以了。

【讨论】:

  • 这些重复是否出乎意料?有一些方法可以处理重复数据,嗯。
猜你喜欢
  • 2015-12-18
  • 1970-01-01
  • 1970-01-01
  • 2017-01-06
  • 2019-11-03
  • 2022-09-25
  • 1970-01-01
  • 1970-01-01
  • 2018-04-30
相关资源
最近更新 更多