在给定的数据帧中,
import pandas as pd
import numexpr as ne
op_d = {'ID': [1, 2,3],'V':['F','G','H'],'AAA':[0,1,1],'E':[20141223,20190201,20170203] ,'D':['2019/02/04','2019/02/01','2019/01/01'],'DD':['2019-12-01','2016-05-31','2015-02-15'],'CurrentRate':[7.5,2,2],'NoteRate':[2,3,3],'BBB':[0,00,4],'Q1':[2,8,00],'Q2':[3,5,7],'Q3':[5,6,8]}
df = pd.DataFrame(data=op_d)
df
如果我做pd.to_datetime(df['E'])
,结果如下:
0 1970-01-01 00:00:00.020141223
1 1970-01-01 00:00:00.020190201
2 1970-01-01 00:00:00.020170203
Name: E, dtype: datetime64[ns]
这是预期的行为吗?如果这是预期的,那么如何从Integer字段检测日期?我知道dtype是否是对象,我可以在列上放置try除外块并将其转换为datetime格式。
答案 0 :(得分:5)
在此处需要指定参数format
-%Y%m%d
的意思是YYMMDD
:
print (pd.to_datetime(df['E'], format='%Y%m%d'))
0 2014-12-23
1 2019-02-01
2 2017-02-03
Name: E, dtype: datetime64[ns]