Как вы управляете отсутствующей датой в кадре данных? - PullRequest
0 голосов
/ 26 июня 2018

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

Я пробовал это:

dates['date'].apply(lambda x: x.toordinal())

А у меня ошибка:

ValueError: NaTType does not support toordinal

Ответы [ 2 ]

0 голосов
/ 26 июня 2018

Вы можете использовать модуль datetime. Обратите внимание, что NaT преобразуется в 1 на datetime.toordinal. Вы можете, если хотите, заменить это значением по вашему выбору в качестве отдельного шага.

Данные @ Jezrael.

from datetime import datetime

rng = pd.date_range('2017-04-03', periods=5)
dates = pd.DataFrame({'date': rng}) 
dates.loc[6, 'date'] = np.nan

dates['date_ordinal'] = dates['date'].apply(datetime.toordinal)

print(dates)

        date  date_ordinal
0 2017-04-03        736422
1 2017-04-04        736423
2 2017-04-05        736424
3 2017-04-06        736425
4 2017-04-07        736426
6        NaT             1
0 голосов
/ 26 июня 2018

Другой вариант -

dates['date'].apply(lambda x: x.toordinal() if pd.notna(x) else 0)
...