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

如何为已有DataFrame添加按组统计的条件计数列

解决方案

方法一:直接生成目标列(最简洁)

利用groupby + transform可以直接在原DataFrame上生成分组统计列,自动将结果匹配到每一行,无符合条件的分组会自动填充0:

# 按索引(Data Tech Group)分组,统计每组中Severity等于2的条目数
df['Sev 2 count'] = df.groupby(df.index)['Severity'].transform(lambda x: (x == 2).sum())
  • 原理:(x == 2)会将每组内的Severity值转为布尔值,sum()统计True的数量(即符合条件的条目数);transform会把统计结果广播到该组的每一行,确保原DataFrame的行数和结构不变。

方法二:先统计再合并(更直观)

如果需要先单独查看分组统计结果,再合并到原DataFrame:

# 筛选Severity=2的行,按索引分组统计数量
sev2_stats = df[df['Severity'] == 2].groupby(df.index).size().reset_index(name='Sev 2 count')

# 左连接合并到原DataFrame,缺失值填充为0
df = df.merge(sev2_stats, left_index=True, right_on='Data Tech Group', how='left')
df['Sev 2 count'] = df['Sev 2 count'].fillna(0)

# 恢复原索引(如果合并后索引被修改)
df.set_index('Data Tech Group', inplace=True)
  • 说明:size()用于统计每组的行数,比count()更准确(count()会受列中空值影响);merge用左连接保证原DataFrame的所有行都被保留,fillna(0)处理无符合条件条目的分组。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 21:40:33