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

Pandas无法读取Excel列名‘PM10’的问题及解决方法

Pandas读取Excel后访问'PM10'列报KeyError问题

已确认列名字母拼写和空格无误,但访问PM10_data['PM10']时仍触发KeyError,报错信息如下:

Traceback (most recent call last):

  File "<ipython-input-51-afc09c056d5a>", line 1, in <module>
    runfile('C:/Users/Jamie Tsoi/OneDrive/Desktop/FYP/office hourly.py', wdir='C:/Users/Jamie Tsoi/OneDrive/Desktop/FYP')

  File "C:\Users\Jamie Tsoi\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 827, in runfile
    execfile(filename, namespace)

  File "C:\Users\Jamie Tsoi\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 110, in execfile
    exec(compile(f.read(), filename, 'exec'), namespace)

  File "C:/Users/Jamie Tsoi/OneDrive/Desktop/FYP/office hourly.py", line 128, in <module>
    PM10_data['PM10']

  File "C:\Users\Jamie Tsoi\Anaconda3\lib\site-packages\pandas\core\frame.py", line 2980, in __getitem__
    indexer = self.columns.get_loc(key)

  File "C:\Users\Jamie Tsoi\Anaconda3\lib\site-packages\pandas\core\indexes\base.py", line 2899, in get_loc
    return self._engine.get_loc(self._maybe_cast_indexer(key))

  File "pandas\_libs\index.pyx", line 107, in pandas._libs.index.IndexEngine.get_loc

  File "pandas\_libs\index.pyx", line 131, in pandas._libs.index.IndexEngine.get_loc

  File "pandas\_libs\hashtable_class_helper.pxi", line 1607, in pandas._libs.hashtable.PyObjectHashTable.get_item

  File "pandas\_libs\hashtable_class_helper.pxi", line 1614, in pandas._libs.hashtable.PyObjectHashTable.get_item

KeyError: 'PM10'

排查与解决方法

  • 打印所有列名确认实际值:
    运行以下代码,查看DataFrame实际加载的列名,排查是否存在不可见字符或格式差异:
    print(PM10_data.columns.tolist())
    
  • 清理列名前后空白:
    列名可能存在肉眼不可见的前后空格,用strip()统一清理:
    PM10_data.columns = PM10_data.columns.str.strip()
    
    清理后再尝试访问PM10_data['PM10']。
  • 检查Excel表头格式:
    确认Excel文件中表头是否存在合并单元格、换行符或全角空格,这类格式问题会导致pandas读取的列名异常。
  • 指定正确的表头行:
    读取Excel时明确指定表头所在行(默认是第0行),避免误读数据行作为表头:
    import pandas as pd
    PM10_data = pd.read_excel('your_file.xlsx', header=0)
    
  • 查看列名原始字符:
    如果以上方法无效,打印列名的原始字符串表示,排查隐藏字符:
    for col in PM10_data.columns:
        print(repr(col))
    
    比如可能出现'PM10\n'(带换行符)或'PM10'(全角字符)这类情况,需针对性调整访问的键值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 18:05:26