Pandas : dataframe cumsum , reset if other column is false
本问题已经有最佳答案,请猛点这里访问。
我有一个包含 2 列的数据框,这里的目标很简单;如果行列设置为 False,则重置 df.cumsum();
df
1 2 3 4 5 6 | value condition 0 1 1 1 2 1 2 3 1 3 4 0 4 5 1 |
想要的结果如下:
df
1 2 3 4 5 6 | value condition 0 1 1 1 3 1 2 6 1 3 4 0 4 9 1 |
如果我按照本文所述循环数据帧 Python pandas cumsum() reset after hit max
我可以达到想要的结果,但我正在寻找一种使用 pandas 标准函数的更加矢量化的方式
怎么样:
1 | df['cSum'] = df.groupby((df.condition == 0).cumsum()).value.cumsum() |
输出:
1 2 3 4 5 6 | value condition cSum 0 1 1 1 1 2 1 3 2 3 1 6 3 4 0 4 4 5 1 9 |
您会将连续的行组合在一起,直到在