跨特定跨度计算 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
的特定范围内?
#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
我知道了。数据框:
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
的特定范围内?
#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