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