日期序列号和日期需要转换为日期格式

时间:2019-10-01 20:02:57

标签: pandas

当我读取数据格式的Google电子表格时,获取以下格式的数据

42836
42837
42838
42844
42845
42846
42849
42850
42851
2/1/2018
2/2/2018

但是我需要全部转换为日期格式

2 个答案:

答案 0 :(得分:3)

IIUC根据我的经验设置origin日期并使用np.where Excel中的起源是1899年12月30日。

s1=pd.to_datetime(pd.to_numeric(df.date,errors='coerce'),errors='coerce',origin='1899-12-30',unit='D')
s2=pd.to_datetime(df.date,errors='coerce')
df['new']=np.where(df.date.str.contains('/'),s2,s1)
df
Out[282]: 
       date        new
0     42837 2017-04-12
1     42838 2017-04-13
2     42844 2017-04-19
3     42845 2017-04-20
4     42846 2017-04-21
5     42849 2017-04-24
6     42850 2017-04-25
7     42851 2017-04-26
8  2/1/2018 2018-02-01
9  2/2/2018 2018-02-02

答案 1 :(得分:0)

将datetime与timedelta一起使用。 基准年为1.1.1900,然后将日期添加为timedelta。 for循环仅显示您的前三个日期。 如果您需要其他格式,请使用strftime(“%Y-%m-%d%H:%M:%S”,gmtime())

import datetime as dt
date = dt.datetime(1900,1,1)
dates = [42836, 42837, 42838]
for aDay in dates:<br>
    print(date+dt.timedelta(days=aDay))