Панды to_datetime месяц прочитан неправильно - PullRequest
0 голосов
/ 05 июля 2018

У меня есть фрейм данных, содержащий даты в формате ГГГГММ (например, 201704).

Попытка преобразовать его в тип даты и времени с помощью:

data['ym'] = pd.to_datetime(data['ym'],format="%y%m")
data['year'], data['month'] = data['ym'].dt.year, data['ym'].dt.month

Дает мне правильные годы, но не правильные месяцы:

 data['month'].unique()

возвращает только одно значение (а в данных 12).

 data['ym']

1012 * возвращается *

 2017-01-01 00:08:00

Есть идеи, как правильно выбрать месяц?

Ответы [ 2 ]

0 голосов
/ 05 июля 2018

Вы также можете сделать это с помощью модуля datetime в python:

from datetime import datetime
data['ym'] = data['ym'].apply(lambda x: datetime.strptime(str(x), format='%Y%m'))
0 голосов
/ 05 июля 2018

Используйте %Y для анализа YYYY, %y для YY лет формат:

data = pd.DataFrame({'ym':['201704','201705','201706']})

data['ym'] = pd.to_datetime(data['ym'], format="%Y%m")
data['year'], data['month'] = data['ym'].dt.year, data['ym'].dt.month
print (data)
          ym  year  month
0 2017-04-01  2017      4
1 2017-05-01  2017      5
2 2017-06-01  2017      6
...