Проблема при преобразовании строки в дату - PullRequest
0 голосов
/ 14 апреля 2020

У меня есть Datframe со значениями, подобными этим 2052017

11022016

4122015

Я должен преобразовать этот столбец в дату. Я пытаюсь использовать pd.to_datetime, но получаю ошибку. Я указываю формат как% d% m% Y

1 Ответ

0 голосов
/ 14 апреля 2020

Формат, в котором вы передаете - %d%m%Y - работает только с датами в очень конкретном формате c.

То есть день с нулем (01, а не 1), заполненный нулями месяц (01-12, только 1 или 3 будет недействительным), а затем полный четырёхдиапазонный git год.

Для дат, у которых значение дня меньше 10, вам сначала нужно дополнить значение с начальным нулем, чтобы оно соответствовало формату.

В вашем примере 2052017, Pandas пытается проанализировать значение 7-ди git, когда оно должно иметь 8.

Это работает следующим образом:

2052017 -> 20 (день) 52 (месяц, который невозможен) 017X (год, один ди git слишком короткий, чтобы быть действительным).

С добавлением отступов:

02052017 -> 02 (день) 05 (месяц) 2017 (год)

Вы можете использовать метод серии .str.zfill(), чтобы задать все значения даты правильная длина; обратите внимание, что для этого необходимо, чтобы значения были строками, которые, вероятно, уже есть.

column = column.str.zfill(8)

...