У меня есть кадр данных, содержащий даты формы YYYYMM (например, 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']
возвращается
2017-01-01 00:08:00
Любая идея о том, как правильно выбрать месяц?
Используйте %Y
для разбора YYYY
, %y
для формата YY
years:
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
Вы также можете сделать это с помощью модуля datetime python:
from datetime import datetime
data['ym'] = data['ym'].apply(lambda x: datetime.strptime(str(x), format='%Y%m'))
"%Y%m"