【问题标题】:Pandas Merge returning NaN?熊猫合并返回NaN?
【发布时间】:2018-03-16 15:59:07
【问题描述】:

我有 2 个数据框:

df1=

State           Code
Alabama         AL
Alaska          AK
American Samoa  AS
Arizona         AZ
Arkansas        AR

df2=

State            PREVAILING_WAGE
CALIFORNIA       102170.0
DELAWARE         97531.0
SOUTH CAROLINA   96824.0
WASHINGTON       89586.0
OREGON           88234.0

现在当我尝试合并两者时,如果它们使用:

df1.merge(df2,left_on='State',right_on='State',how='left')

我在合并表中得到 NaN 值,如下所示:

State          PREVAILING_WAGE   Code
CALIFORNIA     102170.0          NaN
DELAWARE       97531.0           NaN
SOUTH CAROLINA 96824.0           NaN
WASHINGTON     89586.0           NaN
OREGON         88234.0           NaN

我也检查了 dtypes,它们都是对象或 str。我该如何解决?

谢谢

编辑:数据框包含所有状态名称,因此它们具有要匹配的通用内容。

【问题讨论】:

  • 预期输出是什么?

标签: python pandas


【解决方案1】:

如果使用左连接,如果df1.State中不存在df2.State值,则在Code中返回NaN,表示不匹配。

我会检查 State 列中每个字符串后面是否有多余的空格,并确保所有值都是大写并转换为str

【讨论】:

  • 该死!!如此愚蠢的错误。案件不匹配。我认为当您长时间编码时会发生这种情况..:p。谢谢@Ray
猜你喜欢
  • 2018-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-23
  • 1970-01-01
  • 2021-11-24
  • 2019-05-10
  • 2018-10-11
相关资源
最近更新 更多