小编典典

用熊猫转换Excel样式日期

python

我必须解析一个XML文件,该文件为我提供Excel样式的日期时间。例如:42580.3333333333

熊猫是否提供将该数字转换为常规datetime对象的方法?


阅读 182

收藏
2020-12-20

共1个答案

小编典典

好的,我认为最简单的方法是TimedeltaIndex从浮点数构造a并将其添加到以下标量日期时间中1900,1,1

In [85]:
import datetime as dt
import pandas as pd
df = pd.DataFrame({'date':[42580.3333333333, 10023]})
df

Out[85]:
           date
0  42580.333333
1  10023.000000

In [86]:
df['real_date'] = pd.TimedeltaIndex(df['date'], unit='d') + dt.datetime(1900,1,1)
df

Out[86]:
           date                  real_date
0  42580.333333 2016-07-31 07:59:59.971200
1  10023.000000 1927-06-12 00:00:00.000000

好的,似乎Excel的日期有点奇怪,谢谢@ayhan:

In [89]:
df['real_date'] = pd.TimedeltaIndex(df['date'], unit='d') + dt.datetime(1899, 12, 30)
df

Out[89]:
           date                  real_date
0  42580.333333 2016-07-29 07:59:59.971200
1  10023.000000 1927-06-10 00:00:00.000000
2020-12-20