跨特定跨度计算 pandas 数据框中的累计和

Computing cumulative sum in pandas dataframe across specific spans

我知道了。数据框:

            tot_pix  Season  caap_col    lamma     kite
datetime                                                  
2000-01-01   1914.0  2000.0       1.0  1.95025  117.737362
2000-01-04   1914.0  2000.0       1.0  1.95025  117.674177
2000-01-05   1914.0  2000.0       1.0  1.95025  117.995489
2001-01-04   1914.0  2001.0       1.0  1.95025  118.114809
2001-01-05   1914.0  2001.0       1.0  1.95025  118.160295

在上面的数据框中,我想计算 kite 列的累计和。但是,我希望累计总和不跨越 Season 个值。例如。 kite 的累积总和输出应如下所示:

          tot_pix Season caap_col lamma kite
datetime                    
1/1/2000    1914    2000    1   1.95025 117.737362
1/4/2000    1914    2000    1   1.95025 235.411539
1/5/2000    1914    2000    1   1.95025 235.669666
1/4/2001    1914    2001    1   1.95025 118.114809
1/5/2001    1914    2001    1   1.95025 236.275104

我可以使用 cumsum 命令计算累计和,如何将其限制在 Season 的特定范围内?

你需要groupby + cumsum:

#if not sorted index with column Season
#df = df.sort_index(sort_remaining=True).sort_values('Season')

df['kite'] = df.groupby('Season')['kite'].cumsum()
print (df)
           tot_pix  Season  caap_col    lamma        kite
datetime                                                  
2000-01-01   1914.0  2000.0       1.0  1.95025  117.737362
2000-01-04   1914.0  2000.0       1.0  1.95025  235.411539
2000-01-05   1914.0  2000.0       1.0  1.95025  353.407028
2001-01-04   1914.0  2001.0       1.0  1.95025  118.114809
2001-01-05   1914.0  2001.0       1.0  1.95025  236.275104