gpt4 book ai didi

Python groupby、cumsum 和 max 计算月末余额

转载 作者:行者123 更新时间:2023-12-01 07:44:48 27 4
gpt4 key购买 nike

我的数据经过处理后看起来像这样。

         Date    Amount Month   Balance
0 9/4/2018 32000.00 9 32000.00
1 9/30/2018 29.59 9 32029.59
2 10/1/2018 34.05 10 32063.64
3 10/31/2018 -1000.00 10 31063.64
4 11/1/2018 1500.00 11 32563.64
5 11/30/2018 33.06 11 32596.70
6 12/1/2018 -2000.00 12 30596.70
7 12/31/2018 34.26 12 30630.96

我需要计算每个月末的余额以及月末最高余额。我尝试了 groupby、cumsum 和 max 的各种组合,但没有得到预期的结果。

这是我到目前为止所拥有的:

month_end_balance = yearly_df.groupby('Month')['Amount'].cumsum()
max_month_end_balance = month_end_balance.max()

我预计month_end_balance是:

9   32029.59
10 31063.64
11 32596.70
12 30630.96

我预计 max_month_end_balance 为 32596.70

最佳答案

首先将Date列转换为datetime:

df.Date=pd.to_datetime(df.Date,format='%m/%d/%Y')

然后:

m=(df.assign(cum_Amount=df.Amount.cumsum()).
groupby(df.Date.dt.month)['cum_Amount'].max().reset_index())
print(m)
<小时/>
   Date  cum_Amount
0 9 32029.59
1 10 31063.64
2 11 32596.70
3 12 30630.96

编辑似乎您已经有了余额,并且您只想过滤月末日期,请使用:

from pandas.tseries.offsets import MonthEnd
df[df.Date.eq(df.Date+MonthEnd(0))]
<小时/>
        Date   Amount  Month   Balance
1 2018-09-30 29.59 9 32029.59
3 2018-10-31 -1000.00 10 31063.64
5 2018-11-30 33.06 11 32596.70
7 2018-12-31 34.26 12 30630.96

关于Python groupby、cumsum 和 max 计算月末余额,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56515140/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com