Pandas执行stack堆叠操作设置国家为索引时找不到Country列求助
问题排查与修复
- 问题1:
reset_index()方法默认返回新的DataFrame,不会修改原对象,你调用该方法后没有赋值给data变量,导致Year和Country仍为多级索引,没有转为普通列,后续操作自然找不到Country列。 - 问题2:
set_index('Country')同样默认返回新对象,未赋值的话操作不会生效。
修正后代码
import pandas as pd url = 'https://raw.githubusercontent.com/cleibowitz/Module-6/main/Module%206%20Dataset%20-%20GDP%20TRANSPOSED.csv' data = pd.read_csv(url, index_col = 'Year') data.columns.name = 'Country' # 堆叠后直接重置索引转为普通列 data = pd.DataFrame(data.stack().rename('value')).reset_index() # 筛选2020年数据后设置Country为索引,直接赋值覆盖原变量 data = data.query('Year == 2020').set_index('Country') print(data)
运行上述代码即可得到你预期的、以国家为索引展示2020年对应数值的结果。
内容的提问来源于stack exchange,提问作者Chase Leibowitz
相关产品推荐
相关产品推荐

