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
相关产品推荐
相关产品推荐

