Pandas to_datetime 月份读错了

Pandas to_datetime month read incorrectly

我有一个包含 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()

returns只有一个值(数据中有12个)。

 data['ym']

returns

 2017-01-01 00:08:00

知道如何正确 select 月份吗?

使用%Y解析YYYY%yYY年格式:

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

您也可以使用 python 的日期时间模块:

from datetime import datetime
data['ym'] = data['ym'].apply(lambda x: datetime.strptime(str(x), format='%Y%m'))