Преобразовать строку в дату и время - датафрейм Python - PullRequest
0 голосов
/ 18 января 2019

Привет! Я хочу преобразовать столбец (строку) в виде кадра данных в дату. Я обнаружил, что некоторые даты были преобразованы правильно, а некоторые неверны.

df
  Id       Date     Rev
1605380 1/12/2018   3000.0
2237851 27/11/2018  3000.0
1797180 11/2/2018   2000.0
1156126 9/1/2018    2000.0
1205792 8/4/2017    2000.0

df['Date'] = pd.to_datetime(df['Date'])

На выходе я получил

 Id       Date      Rev
1605380 2018-01-12  3000.0
2237851 2018-11-27  3000.0
1797180 2018-11-02  2000.0
1156126 2018-09-01  2000.0
1205792 2017-08-04  2000.0

Похоже, что если "день" не является двузначным, дата-время преобразует его в "месяц" вместо "день". Следовательно, 1/12/2018 должно быть 2018-12-01, а не 2018-01-12. Как я могу исправить эту проблему?

На самом деле мне нужны только год и месяц для вывода.

Идеальный вывод

  Id       Date     Rev
1605380 2018-12    3000.0
2237851 2018-11    3000.0
1797180 2018-02    2000.0
1156126 2018-01    2000.0
1205792 2017-04    2000.0

1 Ответ

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

Вам просто нужно указать параметр format для '%d/%m/%Y', чтобы явно указать формат даты в качестве комментария. Или установите dayfirst на True. Объект datetime фактически содержит информацию о году, месяце, дне и времени, поэтому для отображения только месяца и года вам необходимо преобразовать обратно в строку:

df['Date'] = pd.to_datetime(df['Date'], dayfirst=True).dt.strftime('%Y-%m')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...