使用自定义月频率重新采样

2024-04-23 06:45:11 发布

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

我正在寻找一个与W-MON(每周,星期一结束)对应的每月数据规范。在

具体来说,我有一个熊猫的数据框架,每天的数据,我只想每月观察,从最近的日期开始,每月回去。在

如果今天是2016年6月17日,我的日期指数将是2016年6月17日、2016年5月17日、2016年4月17日。。。等等

现在我只能找到月开始和月结束作为规范测向频率(). 在

谢谢。在


Tags: 数据规范框架指数频率mon
1条回答
网友
1楼 · 发布于 2024-04-23 06:45:11

您可以使用relativedelta创建相关日期,并选择使用.loc[]

from datetime import datetime
from dateutil.relativedelta import relativedelta
from pandas_datareader.data import DataReader

使用每日样本数据:

^{pr2}$

以及一个月结束日期,以显示relativedelta如何处理此案例:

today = date(2016, 1, 31) 

创建日期序列:

n_months = 30
dates = [today - relativedelta(years=m // 12, months=m % 12) for m in range(n_months)]

获得:

stock_data.loc[dates]

Date
2016-01-31    108.989998
2015-12-31    106.000000
2015-11-30    105.839996
2015-10-31    104.510002
2015-09-30     88.440002
2015-08-31     90.599998
2015-07-31     94.949997
2015-06-30     86.599998
2015-05-31     79.949997
2015-04-30     80.010002
2015-03-31     82.900002
2015-02-28     80.680000
2015-01-31     78.000000
2014-12-31     79.540001
2014-11-30     77.669998
2014-10-31     74.930000
2014-09-30     79.349998
2014-08-31     74.300003
2014-07-31     74.000000
2014-06-30     67.459999
2014-05-31     63.950001
2014-04-30     57.580002
2014-03-31     60.779999
2014-02-28     69.470001
2014-01-31     60.470001
2013-12-31     54.119999
2013-11-30     46.750000
2013-10-31     47.160000
2013-09-30     50.139999
2013-08-31     42.020000
Name: Open, dtype: float64

相关问题 更多 >