遍历 Pandas 浮点时间戳 DataFrame 并转换为日期时间

Iterate through a Pandas DataFrame of Float time stamps and convert to date time

我有一个 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]

谢谢 for link