这个解决方案对我Count cumulative true Value不起作用,我明确地需要按id
和consecBool
分组;上述假设是一个同质数据集,没有不同的组
当一个布尔列为False时,我如何重置累计计数器?
df = pd.DataFrame({'id': [1, 1, 1, 1, 1, 1, 1],
'consecDays': [0, 1, 1, 1, 0, 1, 1],
'consecBool': [False, True, True, True, False, True, True],
'expected': [0, 1, 2, 3, 0, 1, 2]})
df['Counter'] = df.groupby(['id', 'consecBool'])['consecDays'].cumsum()
expected
是预期结果
id consecDays consecBool expected Counter
0 1 0 False 0 0
1 1 1 True 1 1
2 1 1 True 2 2
3 1 1 True 3 3
4 1 0 False 0 0
5 1 1 True 1 4
6 1 1 True 2 5
1条答案
按热度按时间vc9ivgsu1#
您可以尝试: