Заполните пропущенные даты другим значением столбца - PullRequest
0 голосов
/ 09 января 2019

Я пытался сделать что-то, что мне показалось бы простым, но я столкнулся с проблемой, которую не понимаю. У меня есть два столбца: date_published и date_obtained, конечно, у меня есть все данные для date_obtained, но не для date_published. Мой подход состоял в том, чтобы заполнить пропущенную date_published датой, полученной за минус 1 день (это также может быть срединная разница, но я ее проигнорирую).

df выглядит так:

date_published    date_obtained
 2017-12-20        2017-12-22
    NaT            2017-12-23

И потом должно выглядеть так:

date_published    date_obtained
 2017-12-20        2017-12-22
 2017-12-22        2017-12-23

Я попробовал следующее:

date_delta=(Df.date_obtained-datetime.timedelta(days=1))
Df.loc['date_published']=Df.date_published.fillna((date_delta))

Но, к моему удивлению, он не заполнил NaT, а также создал пропущенное значение во всем моем фрейме данных. Также попытался заполнить только Df.date_obtained, но результат был тот же. Чего мне не хватает?

1 Ответ

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

Вы были почти там, вы должны были либо сделать:

u = df.date_obtained - pd.Timedelta(days=1)
df['date_published'] = df.date_published.fillna(u)

Или,

df.loc[:, 'date_published'] = df.date_published.fillna(u)

Использование loc для ссылки на столбцы (в противном случае он попытается проверить индекс для переданной вами метки).

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