You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

两个DataFrame基于加1后的索引字段关联时出现匹配错误问题

问题根因
  • pandas中DataFrame.join()方法的逻辑是:on参数仅指定左表用于匹配的列,右表默认使用自身的行索引参与匹配,而非右表的同名字段。
  • 你的df2行索引默认是[0,1,2],左表df的INDEX列值是[1,2,3],匹配过程为:左表值1匹配右表行索引1的行、左表值2匹配右表行索引2的行、左表值3无对应右表行索引,因此最后一行匹配为空。你看到的右表INDEX列值错位只是匹配行错误的结果,并非字段被额外加1。
解决方案

提供两种可行写法:

方案1:使用merge方法(更推荐,字段匹配逻辑更直观)

merge方法可直接指定左右表的匹配字段,不需要修改索引:

df3 = pd.merge(df, df2, on='INDEX', how='left', suffixes=('1', ''))

方案2:调整右表索引后使用join

如果要继续用join,先把右表的INDEX列设为行索引再关联:

df3 = df.join(df2.set_index('INDEX'), on='INDEX', how='left', lsuffix='1')

内容的提问来源于stack exchange,提问作者user3242036

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 06:09:03