pd.to_datetime将值更改为1970,这不是正确的日期

时间:2018-01-29 04:25:26

标签: python pandas

我在数据框中有一个以下类型的列。

MAT_DATE对象

此列中的值类似于
42872个
42741个
... ...

如何将它们转换为日期时间?
这些基本上是未来日期。
使用to_datetime将它们转换为1970年

df ['MAT_DATE1'] = pd.to_datetime(df ['MAT_DATE'],errors ='coerce')

如果我使用excel更改为短日期,则转换日期会很好。 但是我想直接在数据框架上使用它。

2 个答案:

答案 0 :(得分:2)

使用您感兴趣的origin参数,并根据@Wen建议的增量天数,这可能有效 -

pd.to_datetime(DF [' MAT_DATE&#39],误差='强迫',单位=' d',原点=' 1900至1901年-01&#39)

答案 1 :(得分:1)

该数字是抵消日期的天数增量,excel的默认值是偏移量为1990-01-01

s=pd.Series([42872,42741])

pd.TimedeltaIndex(s,unit='d')+pd.to_datetime('1900-01-01')
Out[88]: DatetimeIndex(['2017-05-19', '2017-01-08'], dtype='datetime64[ns]', freq=None)