循环访问浮点时间戳的 Pandas 数据帧并转换为日期时间



我有一个 Pandas 数据帧,其中包含 2000+ 行,日期为浮点格式,如下所示:

42704.99686342593表示日期时间值的(2016, 11, 30, 23, 55, 29)

我想做的是迭代数据帧中的每一行,并将浮点数转换为正确的日期时间格式,理想情况下d/m/Y H/M/S并将其保存到新的数据帧。

使用 Python 2.7。

我找不到任何重复的问题,也无法用类似问题的解决方案解决问题,所以任何帮助都非常感谢。

谢谢。

您似乎使用serial date Excel格式。

最简单的是减去25569并将to_datetime与参数unit='d'一起使用:

df =  pd.DataFrame({'date':[42704.99686342593,42704.99686342593]})
print (df)
           date
0  42704.996863
1  42704.996863
print (pd.to_datetime(df.date - 25569, unit='d'))
0   2016-11-30 23:55:28.963200
1   2016-11-30 23:55:28.963200
Name: date, dtype: datetime64[ns]

另一种解决方案是减去timedeltaoffset

print (pd.to_datetime(df.date, unit='d') - pd.to_timedelta('25569 Days'))
0   2016-11-30 23:55:28.963200
1   2016-11-30 23:55:28.963200
Name: date, dtype: datetime64[ns]

print (pd.to_datetime(df.date, unit='d') - pd.offsets.Day(25569))
0   2016-11-30 23:55:28.963200
1   2016-11-30 23:55:28.963200
Name: date, dtype: datetime64[ns]

谢谢泰德·佩特鲁的链接。

最新更新