Python多列GroupBy聚合操作出现空行问题求助
多列GroupBy聚合后出现空行的解决方法
问题
需要对多列执行GroupBy并做聚合操作,但当前代码运行后生成了空行,需修正该问题。
原始数据
country type en start Japan aa 25 8/1/2022 Japan cc 1 9/1/2022 US bb 5 8/1/2022 US bb 5 8/1/2022
期望结果
country type en start Japan aa 25 8/1/2022 Japan cc 1 9/1/2022 US bb 10 8/1/2022
当前代码
df.groupby(['country','type','date'])['en'].sum()
解决建议
问题分析
- 原始数据包含全空行,这些空行会被GroupBy处理,生成空分组结果
- GroupBy的列名错误:数据中不存在
date列,实际应为start - 默认
as_index=True会将分组列设为索引,可能导致显示异常
修正后的代码
# 清理数据中所有字段都为空的行 df = df.dropna(how='all') # 执行GroupBy聚合,设置as_index=False让分组列保留为普通列 result = df.groupby(['country', 'type', 'start'], as_index=False)['en'].sum()
说明
dropna(how='all')移除全空行,避免空行参与分组计算- 修正分组列名为
start,匹配数据实际结构 as_index=False确保聚合结果中分组列作为普通列存在,输出格式与期望结果一致
内容的提问来源于stack exchange,提问作者Lynn
相关产品推荐
相关产品推荐

