将float64列转换为日期时间熊猫时出错

时间:2019-08-28 10:43:09

标签: python pandas

我需要将float64类型转换为日期时间格式。

以20181219.0数据为例,我想要的是2018-12-19

我尝试了通用代码;

df1 ['ACT_DATE1'] = pd.to_datetime(df1 ['ACT_DATE1'],format ='%Y /%m /%d')

但是,我得到的是 1970-01-01 00:00:00.020181219

1 个答案:

答案 0 :(得分:1)

显然,这里的第一个问题是缺少一些值,这些值会因缺少日期时间而转换为NaT

在pandas 0.25.0中进行了测试,.0值没有问题,只需要指定日期时间的格式-%Y%m%d

df1 = pd.DataFrame({'ACT_DATE1' : [20181219.0, np.nan]})

df1['ACT_DATE1'] = pd.to_datetime(df1['ACT_DATE1'], format='%Y%m%d') 
print (df1)
   ACT_DATE1
0 2018-12-19
1        NaT

如果不起作用,则有必要删除缺少的值并转换为整数:

dates = df1['ACT_DATE1'].dropna().astype(int)
df1['ACT_DATE1'] = pd.to_datetime(dates, format='%Y%m%d')