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