繁体   English   中英

如何根据夏令时更改 UTC OHLC 时间序列上的熊猫重采样

[英]How to change pandas resampling on a UTC OHLC Time Series based on Daylight Saving

我有一个 1 分钟的 OHLC CSV 文件,其中包含使用UTC 的日期

df = pd.read_csv('...', usecols=['Date','Open','High','Low','Close'],
    index_col=['Date'], parse_dates=['Date'])

我正在使用以下方法对其进行重新采样:

ohlc_head = {'Open':'first', 'High':'max', 'Low':'min', 'Close': 'last'}
df_resamples = df.resample('4h', base=21).agg(ohlc_head).dropna(how='any')

这将从星期日 21:00 开始重新采样,因此它是 21:00、01:00、05:00、...,直到星期五 17:00,其中 21:00 UTC 是市场开放时间。

但是,当有夏令时,一周的第一分钟从星期日 22:00 开始,到 18:00 结束。

当周日的第一分钟从 22:00 开始时,如何在 22:00 和周日的第一分钟从 21:00 开始时的 21:00 交替重采样? 简而言之,重采样应该在 CSV 的第一分钟(即星期日的一周开始)自动开始,并以相同的模式继续,直到遇到另一个开始,依此类推。

我想出了一个简单的解决方案,即本地化时间,重新采样,然后再次更改为 UTC:

df.index = df.index.tz_localize('UTC').tz_convert('Europe/London')
ohlc_dict = {'Open':'first', 'High':'max', 'Low':'min', 'Close': 'last'}
df = df.resample('4h', base=21).agg(ohlc_dict).dropna(how='any')
df.index = df.index.tz_convert('UTC')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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