Python:将cumsum和product应用于pandas groupby

2024-09-29 17:24:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个pandas dataframe,其中有LTD和CycleCount列,需要像这样填充CycleSum列:

LTD         CycleCount    CycleSum
1/1/2017    1             1
1/1/2017    1             1
2/1/2017    0             1
2/1/2017    0             1
3/1/2017    1             2
3/1/2017    1             2
4/1/2017    1             3
4/1/2017    1             3

我试着做:

^{pr2}$

在CycleCount中获得值为1/0的unique LTD,这是我的第一步,因为我有一个组:

LTD         CycleCount
1/1/2017    1
2/1/2017    0
3/1/2017    1
4/1/2017    1

但我找不到一种方法,如何在这个组上生成一个cumsum,然后将其转换回原始数据帧。在

CycleCount只能是1或0,并且对于每个有限公司都是相同的。但是对于任何不同的LTD,CycleCount必须增加CycleSum=1 对我来说,在Excel中很容易实现,但在Python中实现却很困难。在

有什么建议吗?一次行动的目的

我以前是VBA开发人员,也许这是一个noob的例子,但是要离开Excel逻辑是非常困难的。在


Tags: 方法目的dataframepandas原始数据vbaexcel建议
1条回答
网友
1楼 · 发布于 2024-09-29 17:24:35

groupby+prod,然后cumsum,然后join

df.join(df.groupby('LTD').CycleCount.prod().cumsum().rename('CycleSum'), on='LTD')

         LTD  CycleCount  CycleSum
0 2017-01-01           1         1
1 2017-01-01           1         1
2 2017-02-01           0         1
3 2017-02-01           0         1
4 2017-03-01           1         2
5 2017-03-01           1         2
6 2017-04-01           1         3
7 2017-04-01           1         3

这些也会产生同样的结果

^{pr2}$

相关问题 更多 >

    热门问题