Как заполнить пропущенные даты и значения в Pandas DataFrame? - PullRequest
0 голосов
/ 22 января 2020

поэтому набор данных, который я использую, составляет только рабочие дни, но я хочу изменить индекс даты так, чтобы он отражал каждый календарный день. Когда я использую reindex и должен использовать reindex (), я не уверен, как использовать поле 'fill value' в reindex для наследования вышеуказанного значения.

import pandas as pd

idx = pd.date_range("12/18/2019","12/24/2019")

df = pd.Series({'12/18/2019':22.63,
                '12/19/2019':22.2,
                '12/20/2019':21.03,
                '12/23/2019':17,
                '12/24/2019':19.65})
df.index = pd.DatetimeIndex(df.index)
df = df.reindex()

В настоящее время мой набор данных выглядит следующим образом.

enter image description here

Однако, когда я использую переиндексацию, я получаю следующий результат

enter image description here

На самом деле я хочу, чтобы он наследовал значения непосредственно выше, если это результат NaN, поэтому набор данных становится следующим

enter image description here

Спасибо, ребята, за вашу помощь!

Ответы [ 2 ]

2 голосов
/ 22 января 2020

Вы были близки! Вам просто нужно передать индекс, который вы хотите переиндексировать (в данном случае idx), в качестве параметра для метода переиндексации, а затем вы можете установить для параметра method значение 'ffill', чтобы передать последнее действительное значение вперед.

idx = pd.date_range("12/18/2019","12/24/2019")

df = pd.Series({'12/18/2019':22.63,
                '12/19/2019':22.2,
                '12/20/2019':21.03,
                '12/23/2019':17,
                '12/24/2019':19.65})
df.index = pd.DatetimeIndex(df.index)
df = df.reindex(idx, method='ffill')
0 голосов
/ 22 января 2020

Похоже, что вы создали серию, а не фрейм данных. Посмотрите, поможет ли вам приведенный ниже код.

df = df.to_frame().reset_index() #to convert series to dataframe
df = df.fillna(method='ffill')
print(df)

Вывод Вам придется переименовывать столбцы

         index  0
0   2019-12-18  22.63
1   2019-12-19  22.20
2   2019-12-20  21.03
3   2019-12-21  21.03
4   2019-12-22  21.03
5   2019-12-23  17.00
6   2019-12-24  19.65
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...