У меня есть некоторые даты в строке с разными форматами, которые я конвертирую в объекты даты и времени, используя to_datetime()
. Однако в списке строк также есть некоторые значения мусора, которые я хочу преобразовать в дату по умолчанию.
import pandas as pd
import datetime as dt
print(df)
dates
0 2018-02-12
1 2018-03-19
2 12-24-2018
3 garbage
Я использую errors='coerece'
, чтобы предотвратить исключение. Он выдает NaT
, который я хочу преобразовать в дату по умолчанию 2018-12-31, в моем случае.
df['dates'] = pd.to_datetime(df['dates'], errors='coerce')
Ниже результата.
dates
0 2018-02-12
1 2018-03-19
2 2018-12-24
3 NaT
Подход:
Я проверяю, является ли данное значение действительным датой-временем или нет. Если нет, поместите объект datetime по умолчанию. Но по какой-то причине он выдает все значения по умолчанию.
df['dates'].apply(lambda x: dt.datetime(2018,12,31) if x is not dt.datetime else x)
Токовый выход
dates
0 2018-12-31
1 2018-12-31
2 2018-12-31
3 2018-12-31
Ожидаемый результат:
dates
0 2018-02-12
1 2018-03-19
2 2018-12-24
3 2018-12-31
Есть ли способ задать дату по умолчанию для функции to_datetime (), чтобы она не производила NaT? Если нет, как я могу поставить даты по умолчанию после этого?