Pandas访问Month列触发KeyError错误的解决方法求助
解决Pandas中KeyError: 'Month'的问题
你的数据格式如下:
Month Target Efficiency Actual
Aug-18 95% 0.4500
Sep-18 95% 0.3000
执行df['Efficiency Actual']能正常返回结果,但调用df['Month']时触发KeyError: 'Month',可以从以下几个方向排查解决:
检查列名是否存在不可见空格
读取数据时,Month列名前后可能带有空格(比如' Month'或'Month '),导致直接匹配失败。先打印所有列名确认:print(df.columns.tolist())如果发现列名带空格,要么直接用实际列名访问,要么批量去除所有列名的空格:
# 方式1:使用实际列名访问 df[' Month'] # 示例:假设列名前有空格 # 方式2:批量清理列名空格 df.columns = df.columns.str.strip() # 清理后即可正常使用df['Month']确认数据读取时表头是否被正确识别
若读取数据时,pandas未将第一行识别为表头,或把Month设成了索引,也会导致无法通过列名访问。检查读取代码,确保表头参数正确,同时查看索引情况:# 正确读取空格分隔的文本示例 df = pd.read_table('your_data_file.txt', sep='\s+', header=0) # 检查索引是否为Month print(df.index.name) # 如果Month是索引,这样访问 df.index # 或者重置索引将Month转为普通列 df = df.reset_index()排查列名是否被自动修改
少数情况下pandas会自动修改列名(比如重复列名时添加后缀),打印列名列表就能确认,之后使用实际列名访问即可。
内容的提问来源于stack exchange,提问作者def init
相关产品推荐
相关产品推荐

