所有先前值的累积和

2024-09-28 18:50:20 发布

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

对于{}和{}也提出了类似的问题,但这并没有解决我的问题

我有一个多年的财务资产负债表,需要按年度汇总所有以前的价值

这是我的复制集:

df=pd.DataFrame(
{"Amount": [265.95,2250.00,-260.00,-2255.95,120],
"Year": [2018,2018,2018,2019,2019]})

我想要的结果如下:

Year  Amount
2017  0
2018  2255.95
2019  120.00
2020  120.00

所以实际上,在一个循环中,从我的整个系列中最低的一年到我的系列中最高的一年

...
df[df.Year<=2017].Amount.sum()
df[df.Year<=2018].Amount.sum()
df[df.Year<=2019].Amount.sum()
df[df.Year<=2020].Amount.sum()
...

Tags: dataframedf资产amountyear财务pd汇总
1条回答
网友
1楼 · 发布于 2024-09-28 18:50:20

第一步是聚合sum,然后使用^{}^{}按所有可能的年份向前填充缺失值,最后将第一个缺失值替换为0

years = range(2017, 2021)
df1 = (df.groupby('Year')['Amount']
         .sum()
         .cumsum()
         .reindex(years, method='ffill')
         .fillna(0)
         .reset_index())
print (df1)
   Year   Amount
0  2017     0.00
1  2018  2255.95
2  2019   120.00
3  2020   120.00

相关问题 更多 >