【问题标题】:Python Merge Pandas Datasets via inner join with two fieldsPython 通过两个字段的内部连接合并 Pandas 数据集
【发布时间】:2017-12-07 12:22:07
【问题描述】:

我是社区中的新人,所以我希望你能耐心一点。 我正在尝试通过在“邮政编码”和“日期”字段上使用内部连接来合并两个数据集。 原始代码是这样的:

Datapump = pd.merge(hack, health, how='inner', left_on=['Date', 'CP'], right_on=['Creation', 'cp'])

但关键是,每当我尝试执行头部操作时,我都会得到一个空数据集,并且在执行样本时会出现最糟糕的错误: 因此,我将 hack 字段“Date”和健康字段“Creation”作为索引。然后我去参加。

Datapump = pd.merge(hack, health, how='inner', left_index=True, right_index=True)

不幸的是,我还需要外地邮政编码。所以我在以下点再次加入 Datapump = pd.merge(hack, health, how='inner', left_on=['CP'], right_on=['cp'])

现在我可以得到样本和头部,但我觉得一切都变得很奇怪,尤其是当我看到新数据集的条目数时:

<class 'pandas.core.frame.DataFrame'>

Int64Index:803206 个条目,0 到 803205 数据列(共15列): CP 803206 非空对象 Tipo Contaminante 803206 非空 int64 价值 803206 非空 float64 已验证 803206 非空对象 名词 803206 非空对象 edad 801296 非空对象 cp 803206 非空对象 patologia 802387 非空对象 创建 803206 非空 datetime64[ns] Edad_Cat 786829 非空类别 持续时间 772661 非空 timedelta64[ns] Duration_Seconds 772661 非空 float64 weekdays_created 803206 非空 int64 月 803206 非空 float64 cat_month 803206 非空 int64 dtypes:类别(1),datetime64ns,float64(3),int64(3),对象(6),timedelta64ns 内存使用量:92.7+ MB

实际上,在 health 之前大约有 9000 个条目,hack 大约有 6000 个条目。 我不可能通过执行内部连接获得 803.206 条目的数据集。

我怎样才能以一种可以提供有意义且合理的结果的方式进行这种内部连接?

非常感谢您的耐心。

安德烈亚

【问题讨论】:

  • 在数据框中提供几行来重现您的问题

标签: python join inner-join


【解决方案1】:

最终我能够解决这个问题。该问题是由于数据框内部的问题造成的。我打开原始 csv 文件并手动清理有问题的行。然后我重新导入新文件,我能够执行加入。 问候, 安德烈亚

【讨论】:

  • 问题已关闭
猜你喜欢
  • 1970-01-01
  • 2021-07-09
  • 1970-01-01
  • 1970-01-01
  • 2021-07-25
  • 2019-02-16
  • 1970-01-01
  • 1970-01-01
  • 2020-04-07
相关资源
最近更新 更多