繁体   English   中英

熊猫重新采样将周末拉到周五

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM