[英]Resample dataframe quarterly but using different end months
我想对数据框中每个月的数据求和,但要对每个季度的每个月进行累加。 所以输入是:
Index Data
2017-02-05 10
2017-03-04 20
2017-06-20 40
该代码在下面工作:
cum_df = monthly_df.groupby(by=[monthly_df.index.quarter, monthly_df.index.year]).cumsum()
具有以下输出:
Index Data
2017-02-28 10
2017-03-31 30
2017-04-31 0
2017-05-31 0
2017-06-30 40
但是,我不希望这些季度在3月/ 6月/ 9月/ 12月结束,而希望在2月/ 5月/ 8月/ 11月这样的自定义季度结束。 如何更改代码以适用于自定义季度末?
使用pd.Grouper(freq='anchored_offset')
其中anchored_offset
被期望的“锚定的偏移”,从文档字符串: https://pandas.pydata.org/pandas-docs/stable/timeseries.html#anchored-offsets
例:
df = pd.DataFrame(index=pd.date_range(start='2017-02-01', end='2018-1-31', freq='W'))
# Label each Sunday with a 1
df[0] = 1
# Group by quarter with year ending in November ('Q-NOV'), but label each quarter
# with its start date ('QS-NOV')
df.groupby(pd.Grouper(freq='QS-NOV')).sum()
0
2017-02-01 13
2017-05-01 13
2017-08-01 13
2017-11-01 13
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.