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

如何对DataFrame分组子数据集应用扩展窗口计数功能?

Pandas分组实现扩展窗口累计计数

原始数据构造

import pandas as pd

df = pd.DataFrame({
    'key1': ['a', 'a', 'a', 'a', 'b', 'b', 'b', 'b'],
    'day': [1, 2, 3, 4, 1, 2, 3, 4],
    'feat': [None, 'A', None, 'A', 'A', None, None, 'A']
})

解决方案代码

按指定键(支持多键)分组后,将feat列转换为布尔值('A'标记为1,None标记为0),再对每个分组执行累计求和,即可实现分组内独立的扩展窗口计数:

# 单键分组(实际场景多键分组只需传入列名列表,如['key1', 'key2'])
df['count'] = df.groupby('key1')['feat'].apply(lambda x: (x == 'A').cumsum())

执行结果

key1  day  feat  count
0    a    1  None      0
1    a    2     A      1
2    a    3  None      1
3    a    4     A      2
4    b    1     A      1
5    b    2  None      1
6    b    3  None      1
7    b    4     A      2

逻辑说明

  • groupby('key1'):按指定列分组,多键分组时传入列名列表即可,每个分组内计数独立重置
  • x == 'A':将feat列的元素转为布尔值,'A'对应True(运算时等价于1),None对应False(等价于0)
  • cumsum():对布尔值序列执行累计求和,实现扩展窗口内的累计计数效果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 16:03:10