[英]Resample Daily OHLCV to Weekly OHLCV
我想将每日 (ohlcv) 重新采样/转换为每周 (ohlcv)。 用熊猫可以做到这一点吗?
Dictonary格式的样本数据如下(1周每日数据):
{'High': {<Timestamp: 2007-03-02 00:00:00>: 1384.5,
<Timestamp: 2007-03-05 00:00:00>: 1373.0,
<Timestamp: 2007-03-06 00:00:00>: 1378.75,
<Timestamp: 2007-03-07 00:00:00>: 1381.75,
<Timestamp: 2007-03-08 00:00:00>: 1388.75},
'Last': {<Timestamp: 2007-03-02 00:00:00>: 1365.0,
<Timestamp: 2007-03-05 00:00:00>: 1351.5,
<Timestamp: 2007-03-06 00:00:00>: 1374.5,
<Timestamp: 2007-03-07 00:00:00>: 1372.0,
<Timestamp: 2007-03-08 00:00:00>: 1384.5},
'Low': {<Timestamp: 2007-03-02 00:00:00>: 1364.25,
<Timestamp: 2007-03-05 00:00:00>: 1350.5,
<Timestamp: 2007-03-06 00:00:00>: 1362.0,
<Timestamp: 2007-03-07 00:00:00>: 1370.75,
<Timestamp: 2007-03-08 00:00:00>: 1369.25},
'Open': {<Timestamp: 2007-03-02 00:00:00>: 1378.5,
<Timestamp: 2007-03-05 00:00:00>: 1356.75,
<Timestamp: 2007-03-06 00:00:00>: 1365.25,
<Timestamp: 2007-03-07 00:00:00>: 1374.0,
<Timestamp: 2007-03-08 00:00:00>: 1370.0},
'Volume': {<Timestamp: 2007-03-02 00:00:00>: 1706906,
<Timestamp: 2007-03-05 00:00:00>: 1984041,
<Timestamp: 2007-03-06 00:00:00>: 1397911,
<Timestamp: 2007-03-07 00:00:00>: 1255484,
<Timestamp: 2007-03-08 00:00:00>: 798237}}
谢谢并恭祝安康。
将数据放入 DataFrame 后,您可以执行以下操作:
ohlc_dict = {
'Open':'first',
'High':'max',
'Low':'min',
'Close':'last',
'Volume':'sum'
}
DataFrame.resample('W-Fri', how=ohlc_dict)
这将为您提供以周五结束的一周的 ohlc 数据。
改编自官方文档的示例:
# Weekly means
In [1305]: ts.resample('W', how='mean')
Out[1305]:
2011-01-01 -0.319569
2011-01-02 -0.337703
2011-01-03 0.117258
Freq: W
您可以将日期偏移到一周中的特定日期,例如'W-SUN'
或'W-MON'
。
在 pandas 版本0.18.0
,函数resample
的how
参数被弃用,因此建议的解决方案变为:
ohlc_dict = {
'Open':'first',
'High':'max',
'Low':'min',
'Close':'last',
'Volume':'sum'
}
df = df.resample('W').agg(ohlc_dict)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.