简体   繁体   English

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

[英]Errors in converting float64 column to datetime pandas

I need to convert float64 type to datetime format.我需要将 float64 类型转换为日期时间格式。

As an example 20181219.0 data, I want is as 2018-12-19以20181219.0数据为例,我想要的是2018-12-19

I have tried common code;我试过通用代码;

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

But, what I get is 1970-01-01 00:00:00.020181219但是,我得到的是 1970-01-01 00:00:00.020181219

First obviously problem here are some missing values, which are converted to NaT for missing datetimes.这里的第一个明显问题是一些缺失值,这些值被转换为NaT以表示缺失的日期时间。

Tested in pandas 0.25.0 and there is no problem with .0 values only necessary specify format of datetimes - %Y%m%d :在 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

If not working and is necessary remove missing values and converting to integer:如果不起作用并且有必要删除缺失值并转换为整数:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM