熊猫to_datetime月未正确读取

时间:2018-07-05 09:22:11

标签: python pandas python-datetime

我有一个数据框,其中包含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

关于如何正确选择月份的任何想法?

2 个答案:

答案 0 :(得分:2)

使用%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

答案 1 :(得分:1)

您也可以使用python的datetime模块来完成此操作:

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