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

Python分组(Groupby)后删除值为0或指定条件的行

移除分组结果中sum为0的行

你现在执行这段分组代码:

df3=df.groupby(['Region']).apply(lambda x: x[x['Region'].isin(["North", "East"])]['Sales'].sum()).reset_index(name='sum')

得到的结果是:

Region    sum
0   East    455.0
1   North   665.0
2   South   0.0
3   West    0.0

要得到只保留sum不为0的行,有两种简单办法:

办法一:直接过滤现有结果

对已经生成的df3做行筛选,只保留sum不等于0的行:

df_filtered = df3[df3['sum'] != 0].reset_index(drop=True)

执行后就能得到预期结果:

Region   sum
0   East    455.0
1   North   665.0

办法二:优化原分组逻辑(更高效)

其实你原来的分组写法有点绕,可以先筛选出目标Region,再分组求和,这样直接就不会生成sum为0的行,省去后续过滤步骤:

df_filtered = df[df['Region'].isin(["North", "East"])].groupby('Region')['Sales'].sum().reset_index(name='sum')

这段代码先把Region是North或East的数据挑出来,再按Region分组求Sales的和,结果直接就是你要的样子。

内容的提问来源于stack exchange,提问作者월봉리

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 15:20:32