微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – 日内数据的每日高点/低点

我有一个带有日期时间索引的数据帧,如下所示:

date_time           open    high    low     close   vol
2018-05-13 18:00:00 70.54   70.60   70.42   70.55   2665
2018-05-13 18:15:00 70.55   70.59   70.53   70.58   378
2018-05-13 18:30:00 70.58   70.70   70.57   70.69   1470
2018-05-13 18:45:00 70.68   70.68   70.63   70.65   427
...
2018-05-14 00:00:00 70.46   70.47   70.40   70.41   1276
2018-05-14 00:15:00 70.41   70.45   70.38   70.39   1356
2018-05-14 00:30:00 70.39   70.48   70.39   70.46   1161
2018-05-14 00:45:00 70.46   70.47   70.43   70.46   359

我需要两个具有DAILY High和DAILY低值的列.
我正在尝试这样做:

df['day_high']= x.resample('D').high.max()
df.day_high = x.day_high.fillna(method='ffill')

它在几天内完美运行,其中存在00:00:00数据时间.因此,14.05.2018我有一个日期时间00:00:00的值,我的代码工作.但2018-05-13天开始于18:00,我的代码返回“NaN”值(我知道,为什么,但我不知道如何编写正确的代码).

你可以帮帮我吗?谢谢.

解决方法:

我相信需要Resampler.transform

df['day_high']= df.resample('D').high.transform('max')
df['day_low']= df.resample('D').low.transform('min')
print (df)
                      open   high    low  close   vol  day_high  day_low
date_time                                                               
2018-05-13 18:00:00  70.54  70.60  70.42  70.55  2665     70.70    70.42
2018-05-13 18:15:00  70.55  70.59  70.53  70.58   378     70.70    70.42
2018-05-13 18:30:00  70.58  70.70  70.57  70.69  1470     70.70    70.42
2018-05-13 18:45:00  70.68  70.68  70.63  70.65   427     70.70    70.42
2018-05-14 00:00:00  70.46  70.47  70.40  70.41  1276     70.48    70.38
2018-05-14 00:15:00  70.41  70.45  70.38  70.39  1356     70.48    70.38
2018-05-14 00:30:00  70.39  70.48  70.39  70.46  1161     70.48    70.38
2018-05-14 00:45:00  70.46  70.47  70.43  70.46   359     70.48    70.38

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐