为了利便各人调查,把这段时刻的日历附在下面,'2018-07-02'正好是礼拜一。

转换的思绪是这样的,以日历中的周举办聚合,如'20180702'-'20180708',取该周期内,日线开盘价的第一个值作为周开盘价,日线最高价的最大值作为周最高价,日线最低价的最小值作为周最低价,日线收盘价的最后一个值作为周最收盘价,日线最高价的最大值作为周最高价,日线成交量的求和作为周成交量(手),如下图黄色方框所示。

我们可以通过.resample()【4】要领实现上述操纵,对DataFrame和Series都合用。个中,参数rule配置必要转换成的频率,'1W'是一周。
详细转换的代码如下,日期默以为本周的礼拜日,假如周期内数据不全,如'20180722'这周只有3行数据,也会凭证上述要领举办转换。
- freq = '1W'
- df_weekly = df[['open']].resample(rule=freq).first()
- df_weekly['high'] = df['high'].resample(rule=freq).max()
- df_weekly['low'] = df['low'].resample(rule=freq).min()
- df_weekly['close'] = df['close'].resample(rule=freq).last()
- df_weekly['vol'] = df['vol'].resample(rule=freq).sum()
-
- df_weekly
-
- Out[33]:
- open high low close vol
- trade_date
- 2018-07-08 9.05 9.05 8.45 8.66 5125563.53
- 2018-07-15 8.69 9.03 8.58 8.88 4901983.84
- 2018-07-22 8.85 8.90 8.66 8.70 1590354.68
升采样:以周线数据转换日线数据为例。继承行使上面方才转换好的周线数据,我们再试着把它转换成日线数据。先通过.resample('D').asfreq()【5】要领,将周线数据的频率转换成日线,结果如下。
- df_daily = df_weekly.resample('D').asfreq()
- print(df_daily)
-
- Out[52]:
- open high low close vol
- trade_date
- 2018-07-08 9.05 9.05 8.45 8.66 5125563.53
- 2018-07-09 NaN NaN NaN NaN NaN
- 2018-07-10 NaN NaN NaN NaN NaN
- 2018-07-11 NaN NaN NaN NaN NaN
- 2018-07-12 NaN NaN NaN NaN NaN
- 2018-07-13 NaN NaN NaN NaN NaN
- 2018-07-14 NaN NaN NaN NaN NaN
- 2018-07-15 8.69 9.03 8.58 8.88 4901983.84
- 2018-07-16 NaN NaN NaN NaN NaN
- 2018-07-17 NaN NaN NaN NaN NaN
- 2018-07-18 NaN NaN NaN NaN NaN
- 2018-07-19 NaN NaN NaN NaN NaN
- 2018-07-20 NaN NaN NaN NaN NaN
- 2018-07-21 NaN NaN NaN NaN NaN
- 2018-07-22 8.85 8.90 8.66 8.70 1590354.68
功效中呈现了许多空值,必要我们凭证必然的要领举办添补,可以通过添加.ffill()可能.bfill()实现。 (编辑:湖南网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|