[英]Pandas resample pulls weekends to Friday
我有一个在工作日可用的每日 OCHL 数据,我正在尝试以 36 天为周期重新采样,以使其与我的图表保持一致。
数据格式如下:
date open close high low
0 2019-05-01 21:00:00 0.70147 0.70023 0.70292 0.69952
1 2019-04-30 21:00:00 0.70476 0.70140 0.70610 0.70074
2 2019-04-29 21:00:00 0.70554 0.70498 0.70692 0.70308
3 2019-04-28 21:00:00 0.70380 0.70564 0.70609 0.70377
4 2019-04-25 21:00:00 0.70149 0.70434 0.70613 0.70074
我正在做这样的重采样:
year_resampled = df_year.resample('36B').agg({'date':'first','open':'first','close':'last','high':'max','low':'min'})
当数据跨越周末时就会出现问题; 我有一个周四结束的时间间隔。 星期五有一个缺失值,resample 函数从星期日拉取数据以开始一个新的时间间隔。 它从星期日开始一个新的时间间隔,我需要将日期改回星期五。 例子:
[datetime.datetime(2018, 7, 23, 21, 0), 0.7379, 0.74176, 0.7434, 0.73596],
[datetime.datetime(2018, 7, 22, 21, 0), 0.74183, 0.73812, 0.74376, 0.73718], - Sunday, new interval starts. Here I want to change date to 2018-7-20
[datetime.datetime(2018, 7, 19, 21, 0), 0.73572, 0.74167, 0.74309, 0.73182], -- Thursday (interval ends)
默认情况下, 'W'
表示从星期日开始的几周。 您可以通过指定'W-Fri'
来更改它
df.resample('W', on='date').first()
date open close high low
date
2019-04-28 2019-04-25 0.70149 0.70434 0.70613 0.70074
2019-05-05 2019-04-29 0.70554 0.70498 0.70692 0.70308
相对
df.resample('W-Fri', on='date').first()
date open close high low
date
2019-04-26 2019-04-25 0.70149 0.70434 0.70613 0.70074
2019-05-03 2019-04-28 0.70380 0.70564 0.70609 0.70377
我正在查看日期列,而我应该查看索引。 重新采样后,索引按照我的需要按正确的顺序排列日期。 我有一个日期聚合,因为我强迫数据框列出但有一个日期列是错误的,所以我删除了它
year_resampled = df_year.resample('36B').agg({'open':'first','close':'last','high':'max','low':'min'})
并使用索引将日期拉入列表
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.