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

如何使用cumcount实现DataFrame分组内特定值的累计计数?

解决方法

你可以先筛选出value列取值为w的行,再按id字段分组后执行cumcount()即可,示例代码如下:

# 直接得到符合要求的计数序列,保留原始索引
result = df[df['value'] == 'w'].groupby('id').cumcount()

如果需要将计数列追加到原DataFrame中,再过滤得到目标格式,可以用以下写法:

# 给所有value=w的行填充累计计数,其余行默认留空
df['w_cumcount'] = df[df['value'] == 'w'].groupby('id').cumcount()
# 过滤得到仅含value=w的行的计数结果
final_result = df[['w_cumcount']].dropna()

原理是先过滤掉所有value不等于w的行,剩余行的顺序和原表完全一致,此时分组累计计数就只会统计value为w的行,最终结果和你给出的预期输出完全匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 22:54:06