данные времени не соответствуют указанному формату - PullRequest
0 голосов
/ 16 апреля 2019

Я пытаюсь преобразовать строку в тип 'datetime' в python. Мои данные соответствуют формату, но все еще получают 'ValueError: данные времени 11 11 не соответствуют указанному формату' Я не уверен, откуда берется «11 11» в ошибке.

Мой код

train_df['date_captured1'] = pd.to_datetime(train_df['date_captured'], format="%Y-%m-%d %H:%M:%S")

заголовок данных

print (train_df.date_captured.head())

0    2011-05-13 23:43:18
1    2012-03-17 03:48:44
2    2014-05-11 11:56:46
3    2013-10-06 02:00:00
4    2011-07-12 13:11:16
Name: date_captured, dtype: object

Я попробовал следующее, просто выбрав первую строку и запустив код с тем же форматом даты и времени. Все они работают без проблем.

dt=train_df['date_captured']
dt1=dt[0]
date = datetime.datetime.strptime(dt1, "%Y-%m-%d %H:%M:%S")
print(date)

2011-05-13 23:43:18

и

dt1=pd.to_datetime(dt1, format='%Y-%m-%d %H:%M:%S')
print (dt1)

2011-05-13 23:43:18

Но почему, когда я использовал тот же формат в pd.to_datetime для преобразования всех данных в столбце, возникает ошибка, описанная выше? Спасибо.

1 Ответ

0 голосов
/ 17 апреля 2019

Я решил это.

train_df['date_time'] = pd.to_datetime(train_df['date_captured'], errors='coerce')
print (train_df[train_df.date_time.isnull()])

Я нашел в строке 100372, значение date_captured равно '11 11'

        category_id date_captured    ...     height  date_time
100372           10         11 11    ...        747        NaT

Таким образом, код с errors='coerce' заменит недействительныйРазбор с NaN.Спасибо.

...