Как получить доступ к определенным ячейкам Dataframe и выполнить некоторые вычисления на них - PullRequest
0 голосов
/ 11 мая 2019

У меня есть следующий фрейм данных:


                Open            Close
2018-05-23  277.760010  279.070007
2018-05-24  278.399994  277.850006
2018-05-25  277.630005  278.850006
2018-05-26  0.0         0.0
2018-05-27  0.0         0.0
2018-05-28  0.0         0.0
2018-05-29  278.510010  283.760010
2018-05-30  283.290009  291.720001

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

Например, значение Open 2018-05-26 будет:

277.630005 - это значение предыдущего дня. 278.510010 - это значение трех дней после

, поэтомуего приблизительное значение равно (277.630005 + 278.510010) / 2

Как можно сделать такое вычисление таким образом, чтобы заполнить значения Open и Close?

что я пытался сделать:

for index,row in df.iterrows():
    if row['Open'] == 0.0:
       ......
    if row['Close']== 0.0:
       .......

but i have no clue what i have to do

Ответы [ 2 ]

1 голос
/ 11 мая 2019

Попробуйте комбинацию replace и interpolate:

 df.replace(0,np.nan).interpolate()

                  Open       Close
2018-05-23  277.760010  279.070007
2018-05-24  278.399994  277.850006
2018-05-25  277.630005  278.850006
2018-05-26  277.850006  280.077507
2018-05-27  278.070007  281.305008
2018-05-28  278.290009  282.532509
2018-05-29  278.510010  283.760010
2018-05-30  283.290009  291.720001
0 голосов
/ 11 мая 2019

Попробуйте взглянуть на функцию fillna .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...