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

Python中Rest API获取DataFrame后多行列筛选报KeyError求助

解决KeyError: 'Meses'的问题

嗨,作为Python新手遇到这个问题太正常啦!这个错误的核心原因很直白:你的DataFrame里没有名为'Meses'的列。下面一步步帮你排查和解决:

第一步:确认DataFrame的实际列名

首先得搞清楚你的DataFrame到底有哪些列——大概率是API返回的列名和你预期的不一样(比如拼写差异、大小写不同、带特殊字符)。用这两个简单命令就能查清楚:

  • 打印所有列名:
    print(df.columns)
    
  • 查看数据样例和结构细节:
    df.head()  # 快速看前几行数据,直观确认列名
    df.info()  # 查看列名、数据类型等完整结构信息
    

比如运行print(df.columns)后,你可能会发现实际列名是'Mês'(带葡萄牙语重音)、'meses'(全小写),甚至是' Meses'(前面多了个空格),这些细微差异都会触发KeyError。

第二步:修正筛选代码

根据你查到的真实列名,修改代码里的列名即可。比如如果实际列名是'Mês',代码就改成:

df1 = df[(df['Mês'] != 'Total') & (df['Orcado x Realizado'] == 'Realizado')]

额外排查:API返回的是嵌套数据?

如果查了列名还是找不到对应字段,那可能是API返回的JSON是嵌套结构,你直接转成DataFrame时没展开嵌套字段。这时候可以用pd.json_normalize()处理:

import pandas as pd
import requests

# 重新获取并处理API数据
response = requests.get("你的API地址")
raw_data = response.json()
df = pd.json_normalize(raw_data)  # 展开嵌套的JSON结构,生成正确的列

这样处理后,嵌套在JSON里的字段会变成DataFrame的列,你再查列名应该就能找到需要的字段了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:25:05