【bug】python pandas KeyError: 'index’
环境
pandas 2.2.3
问题详情
代码
import pandas as pd# 创建一个示例 DataFrame
data = {'id': [1, 2, 3],'name': ['Alice', 'Bob', 'Charlie'],'age': [100, 200, 300]
}
df = pd.DataFrame(data)
# 这里的reset_index()用于将 Series 的索引转换为 DataFrame 的列
a = df["age"].value_counts().reset_index()
print(a)
print(a["index"][0])
完整bug
Traceback (most recent call last):File "t1.py", line 15, in <module>print(a["index"][0])File "C:\ProgramData\miniconda3\envs\playwright310\lib\site-packages\pandas\core\frame.py", line 4102, in __getitem__indexer = self.columns.get_loc(key)File "C:\ProgramData\miniconda3\envs\playwright310\lib\site-packages\pandas\core\indexes\base.py", line 3812, in get_loc raise KeyError(key) from err
KeyError: 'index'
原因:这是由于 pandas 2.x
的reset_index()
得到的结果和pandas 1.x
不一样导致的。
对于 df["age"].value_counts().reset_index()
pandas 1.5.0 结果
"""index age
0 100 1
1 200 1
2 300 1
"""pandas 2.2.3 结果
"""age count
0 100 1
1 200 1
2 300 1
"""
解决方法
方法1:将a["index"][0]
改为 a["age"][0]
.
方法2:将pandas
降级为1.x
版本,如我1.5.0版本没有弹出该bug。