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

Pandas分组聚合生成多余行:如何排除值为0的缺失年份行?

解决方法

你可以在分组求和后,剔除suicides_no为0的行,以下是两种实用的实现方式:

方式一:分组后直接过滤

在原代码基础上追加过滤逻辑,两种写法都可行:

# 写法1:用query方法链式调用
df_temp = df_suicides.groupby(['country', 'year'], as_index=False)['suicides_no'].sum().query('suicides_no > 0')

# 写法2:用布尔索引筛选
df_temp = df_suicides.groupby(['country', 'year'], as_index=False)['suicides_no'].sum()
df_temp = df_temp[df_temp['suicides_no'] > 0]

方式二:分组前置过滤(可选)

如果原始数据里本身就存在suicides_no为0的行,也可以先把这些行筛掉再分组,从源头上避免出现0值分组:

df_temp = df_suicides[df_suicides['suicides_no'] > 0].groupby(['country', 'year'], as_index=False)['suicides_no'].sum()

额外提醒

要是你发现分组后出现的0值行是因为补全了缺失年份(比如之前做过reindex或pivot补全操作),那得先检查前置步骤,确保分组的数据源只保留有实际记录的行,再配合上面的过滤逻辑就能解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 20:05:42