作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的数据经过处理后看起来像这样。
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/
我很难将我的数据按月分组。我什至以编程方式过滤我的数据以仅返回当月的最后一天并计算月值。我试图找到关于“dataGrouping”属性的一个很好的解释,但没有运气理解它也没有正确实现它。每个结果都以每
我有一个问题,从一天中获取月底的最快方法是什么。我有一个非常大的表,我希望我的代码能够快速运行。我当前的代码如下所示: library(lubridate) end_of_month % as.Dat
我是一名优秀的程序员,十分优秀!