Дневной максимум / минимум на внутридневных данных - PullRequest
0 голосов
/ 01 июня 2018

Пусть у меня есть фрейм данных с индексом даты и времени, например:

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 low.Я пытаюсь сделать это:

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

Это прекрасно работает в те дни, когда существует 00:00:00 данных времени.Таким образом, 14.05.2018 у меня есть значение с datetime 00:00:00 и мой код работает.Но 2018-05-13 день начался в 18:00, и мой код возвращает значение «NaN» (я знаю, почему, но я не знаю, как написать правильный код).

Не могли бы вы помочь мне?Спасибо.

1 Ответ

0 голосов
/ 01 июня 2018

Мне кажется, нужно 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...