我的数据框上有一列符合此日期格式:
2016年5月17日
我尝试按照此引用:http://strftime.org/和pandas.to_datetime参考:http://pandas.pydata.org/pandas-docs/version/0.20/generated/pandas.to_datetime.html
我的代码如下:
df1 =df1.apply(pandas.to_datetime, errors='ignore', format='%d %b%Y')
我也尝试过:format='%d/%b%Y'
format='%d /%b%Y'
但仍无效。日期列类型仍然是对象。
有任何想法吗?提前致谢
答案 0 :(得分:2)
您只能使用to_datetime
:
df = pd.DataFrame({'date':['17 MAY2016']})
df['date'] = pd.to_datetime(df['date'])
print (df)
date
0 2016-05-17
如果想要格式参数:
df['date'] = pd.to_datetime(df['date'], format='%d %b%Y')
print (df)
date
0 2016-05-17
如果某些非日期值添加errors='coerce'
以将其转换为NaT
:
df['date'] = pd.to_datetime(df['date'], errors='coerce')
编辑:
支票使用dtypes
:
print (df.dtypes)
date datetime64[ns]
dtype: object
答案 1 :(得分:0)
您不需要使用.apply
,to_datetime
函数本身适用于pandas系列对象。
df1['date column'] = pd.to_datetime(df1['date column'], errors='ignore')