Python pandas:分组累计求和并统计达标次数(含重置规则)
Pandas分组累加达标次数统计问题
我来整理这个关于Pandas分组统计的问题内容,具体如下:
原始DataFrame数据
Hr Name Count Day 6 1318 10.0 Friday 7 1318 20.0 Friday 8 1318 2.0 Friday 9 1318 18.0 Friday 6 1318 2.0 Monday 7 1318 15.0 Monday 8 1318 2.0 Monday 9 1318 5.0 Monday 6 1319 20.0 Friday 7 1319 30.0 Friday 8 1319 50.0 Friday 9 1319 5.0 Friday 6 1319 3.0 Monday 7 1319 30.0 Monday 8 1319 2.0 Monday 9 1319 5.0 Monday
需求说明
我们需要按Name和Day对数据分组,遍历每组的Count值进行累加,规则如下:
- 一旦累加值≥20,就记1次达标
- 达标后立即重置累加器,从下一个
Count的实际值重新开始累加 - 最后统计每个
Day下各个Name的达标总次数
期望的输出结果是:
[{'Friday' :[2,3],'Monday':[1,1]}]
计算逻辑示例
拿Friday的数据来具体说明计算过程:
1318Friday[10+20=30 ≥20 记1,2+18=20 ≥20 记1,总计2] 1319Friday[20 ≥20 记1,30 ≥20 记1,50 ≥20 记1,5不满足,总计3] 最终得到{'Friday' : [2,3]}
已尝试的代码
目前已经尝试了以下代码,但还没实现目标:
finalresult = [data] df = pd.DataFrame(finalresult) df['csum'] = df.groupby(['Day','Name'])['Count'].cumsum()
内容的提问来源于stack exchange,提问作者MMMMS
相关产品推荐
相关产品推荐

