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

如何在R语言中依据AY分组的paid列总和删除多行?

按分组删除总和为0的行

原始数据

假设我们有如下Pandas数据框df:

LoB    AY DY claims paid
  2  2002  0      1  652
  2  2004  0      1    0
  2  2005  0      1    0
  2  2002  1      0    0
  2  2004  1      0    0
  2  2002  2      0    0
  2  2002  3      0    0

需求

需要删除同一AY分组下paid列总和为0的所有行。比如AY=2004的两行paid总和为0,AY=2005的行paid总和也为0,这些行都需要移除,最终只保留AY=2002的所有行。

解决方案

方法1:用groupby + transform筛选

先按AY分组计算每个组的paid总和,再把这个总和映射到每一行,最后只保留所在组总和大于0的行:

import pandas as pd

df_filtered = df[df.groupby('AY')['paid'].transform('sum') > 0]

方法2:用groupby + filter直接筛选分组

这种方式更直观,直接对每个AY分组做判断,只留下paid总和大于0的分组:

df_filtered = df.groupby('AY').filter(lambda x: x['paid'].sum() > 0)

两种方法都能得到目标结果:

LoB    AY DY claims paid
  2  2002  0      1  652
  2  2002  1      0    0
  2  2002  2      0    0
  2  2002  3      0    0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 19:15:52