Pandas DataFrame Resample: Как заполнить nan предыдущим значением «close»? - PullRequest
0 голосов
/ 11 февраля 2019

Я создаю пересчитанные минутные данные из кадра данных временного ряда сделок и получаю столбцы «открытый», «низкий», «высокий», «закрытый», что нормально.

dfOHLCV = pd.DataFrame()
dfOHLCV = df.price.resample('T').ohlc()

Моя проблема заключается в заполнении "нан".Когда нет торговли в течение данного минутного интервала, значение становится «нан».Nans можно заполнить, применив

.fillna(method='ffill') # which replaces nan by the value in the previous period

. Однако цена открытия в ячейке nan должна быть получена не из цены открытия, а из ячейки закрытия предыдущего периода.

Пример:

index | open | high | low | close
00001 | 3200 | 3250 | 3190| 3240
00002 | nan  | nan  | nan | nan

.fillna заполнит

00002 | 3200 | 3250 | 3190| 3240

Но я хотел бы заполнить так:

00002 | 3240 | 3240 | 3240| 3240

Другими словами, я хотел бы заполнить ячейки nanс ценой закрытия предыдущего периода.Как это можно сделать?

1 Ответ

0 голосов
/ 11 февраля 2019

Проверка с fillna с dict

df=df.fillna(dict.fromkeys(df.columns.tolist(),df.close.ffill()))
df
         open    high     low   close
index                                
1      3200.0  3250.0  3190.0  3240.0
2      3240.0  3240.0  3240.0  3240.0
...