You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用pandas groupby生成保留分组条件的DataFrame仅显示1列如何解决?

问题原因

你当前的写法中,groupby操作默认会将分组键(也就是你用到的Country字段)设置为结果的行索引,不会作为普通列保留。你对单列Deaths求和后得到的是Series类型,外层套DataFrame后,Country依然是索引而非普通列,因此查看DataFrame结构时只会显示1个数值列,而写入CSV时pandas默认会导出索引列,才会出现2列的情况。

解决方法

有两种常用方案可以实现保留Country为普通列,得到包含两列的DataFrame:

  • 方案1:分组时添加as_index=False参数,直接让分组键不作为索引,直接生成符合要求的DataFrame,无需额外套DataFrame构造方法:
#import matplotlib.pyplot as plt
import pandas as pd
from pandas.core.frame import DataFrame
covid_data = pd.read_csv('countries-aggregated.csv')
# 核心修改:添加as_index=False参数
bar_data = covid_data.groupby('Country', as_index=False)['Deaths'].sum()
  • 方案2:如果你已经用原有写法生成了结果,调用reset_index()方法即可把索引转换为普通列:
# 原有逻辑不变
bar_data = pd.DataFrame(covid_data.groupby('Country')['Deaths'].sum())
# 新增行,将索引转为普通列
bar_data = bar_data.reset_index()

两种方案处理后得到的bar_data都会包含Country和Deaths两个普通列,查看和写入CSV的表现会一致。

内容的提问来源于stack exchange,提问作者woods

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 07:15:04