当我读取数据格式的Google电子表格时,获取以下格式的数据
42836
42837
42838
42844
42845
42846
42849
42850
42851
2/1/2018
2/2/2018
但是我需要全部转换为日期格式
答案 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))