python pandas - рассчитать процентное изменение, используя последнее не-значение - PullRequest
0 голосов
/ 25 января 2019

Я довольно плохо знаком с Python (в основном я использую R), и я хотел бы выполнить простой расчет, но продолжаю получать ошибки и неверные результаты.Я хотел бы рассчитать процентное изменение для столбца в pandas df, используя последнее не-значение.Пример игрушки ниже.

price = ['Nan', 10, 13, 'NaN', 'NaN', 9]
df = pd.DataFrame(price, columns = ['price'])
df['price_chg'] = df.price.pct_change(periods = -1)

Я продолжаю получать странный результат:

price_chg = [Nan, -0.2307, 0, 0, 0.4444, NaN] 

Я думаю, это связано со значениями Nan.Как мне сказать Python использовать последнее не-значение.Желаемый результат выглядит следующим образом:

price_chg = [Nan, -0.2307, 0.4444, 0, 0, NaN]

Поскольку я не очень хорошо знаю Python, любые предложения, даже более запутанные, будут приветствоваться.

1 Ответ

0 голосов
/ 26 января 2019

Я считаю, что вам нужно использовать обратную засыпку при вызове функции pct_change.

df['price_chg'] = df.price.pct_change(periods = -1, fill_method='backfill')

В результате:

1   -0.230769
2    0.444444
3    0.000000
4    0.000000
5         NaN

На этой странице описаны опции, которые есть у вас при вызове pct_change, включая fill_method. Вы можете узнать больше о методах заполнения, доступных в pandas здесь

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