我有一个数据框,其中包含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
关于如何正确选择月份的任何想法?
答案 0 :(得分:2)
使用%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
答案 1 :(得分:1)
您也可以使用python的datetime模块来完成此操作:
from datetime import datetime
data['ym'] = data['ym'].apply(lambda x: datetime.strptime(str(x), format='%Y%m'))