自学内容网 自学内容网

【bug】python pandas KeyError: ‘index’

【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.xreset_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。


原文地址:https://blog.csdn.net/qq_38463737/article/details/144313656

免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!