gpt4 book ai didi

python - 重新启动后数据帧列的累积总和

转载 作者:行者123 更新时间:2023-12-01 08:51:00 25 4
gpt4 key购买 nike

我想在数据帧上执行以下功能。

计算某列的累计和,注意:

  1. 它只查看前一个索引,不包括当前索引,例如第一个值为零,因为没有以前的数据可供查看。

  2. 当不累加时,例如增量为零,则重新开始计数。

          Number  Cumulative
    0 1 0
    1 1 1
    2 1 2
    3 0 3
    4 0 0
    5 1 0
    6 1 1
    7 0 2

我知道有一个扩展函数,但是当它看到零时它不会重新启动

最佳答案

IIUC,其工作原理是根据上一行是否为 0 进行分组,然后获取累积计数:

>>> df
Number
0 1
1 1
2 1
3 0
4 0
5 1
6 1
7 0

df['Cumulative'] = df.groupby(df.Number.shift().eq(0).cumsum()).cumcount()

>>> df
Number Cumulative
0 1 0
1 1 1
2 1 2
3 0 3
4 0 0
5 1 0
6 1 1
7 0 2

或者,如果它确实是您想要的 cumsum,则应用与上面相同的分组的 cumsum,并将其向下移动 1:

df['Cumulative '] = df.groupby(df.Number.eq(0).cumsum()).cumsum().shift().fillna(0)
>>> df
Number Cumulative
0 1 0.0
1 1 1.0
2 1 2.0
3 0 3.0
4 0 0.0
5 1 0.0
6 1 1.0
7 0 2.0

关于python - 重新启动后数据帧列的累积总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53126246/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com