Python Pandas分组筛选后结果未显示City字段如何解决
问题根因
分组后看不到City字段,是因为Pandas的groupby()默认会把分组字段City_y设为结果表的行索引,不再作为普通数据列展示,不是数据丢失了。
排查步骤
先跑两行代码确认问题:
# 打印结果表的索引名 print(most_polluted_citites_by_industry.index.name) # 打印结果表的普通列名列表 print(most_polluted_citites_by_industry.columns.tolist())
如果输出索引名是City_y,就和上述判断一致。
修复方案
- 方案1:写分组逻辑时直接加
as_index=False参数,让分组列保留为普通列,优化后完整代码:
most_polluted_cities_by_industry = filtered_dataframe[['City_y','I_P_C']]\ .groupby("City_y", as_index=False)\ .median()\ # 原代码升序取尾10逻辑等价于降序取前10,可读性更高 .sort_values(by='I_P_C', ascending=False)\ .head(10)
*顺便修正了原代码里citites的拼写笔误,避免后续调用变量时报错。
- 方案2:如果已经生成了结果表不想重跑,直接重置索引把分组字段转回普通列即可:
most_polluted_citites_by_industry = most_polluted_citites_by_industry.reset_index()
运行后City_y就会作为普通列正常显示。
内容的提问来源于stack exchange,提问作者Keyur Kankotiya
相关产品推荐
相关产品推荐

