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

基于id合并两个pandas DataFrame报KeyError: ['available'] not in index求助

错误原因

如果实际运行确实抛出KeyError: "['available'] not in index",首先排查你本地的df2列名是否和示例一致,确认有没有拼写错误、大小写差异、首尾带空格等问题。
你给出的示例代码的核心问题是两个表的关联列名不一致:

  • 左表df用于关联的列是listing_id
  • 右表df2用于关联的列是id
    你用on='listing_id'参数要求两个表都以listing_id列关联,但df2里没有这个列,必然会触发列不存在的报错。

修正代码

把merge行改为分别指定左右表的关联列,合并后删除多余的id列即可:

import pandas as pd

d = { 'listing_id': [1,2,3,4],
      'month': [1, 2, 3, 4],
      'price': [79.00, 80.00, 90.00, 20.00]}
df = pd.DataFrame(data=d)

d2 = {'id': [1, 2, 3, 4],
     'available': [5000, 8000,5000, 7000],
     'someotherstuff': [2,3,4,5]}
df2 = pd.DataFrame(data=d2)

# 仅修改这一行即可
df = pd.merge(df,df2[['id','available']],left_on='listing_id', right_on='id', how='left').drop('id', axis=1)

输出结果

listing_id  month  price  available
0           1      1   79.0       5000
1           2      2   80.0       8000
2           3      3   90.0       5000
3           4      4   20.0       7000

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 19:57:00