1 #在pandas中如果一列出现nan,则会认为他是float类型
2 import pandas
3 from datetime import datetime,timedelta
4
5 #关于月份加一的函数
6 def add_month(d,md):
7 yd=md//12
8 m=d.month+md%12
9 if m!=12:
10 yd=yd+m//12
11 m=m%12
12 return datetime(d.year+yd,m,d.day)
13
14 #header和sikprows作用一样
15 excel=pandas.read_excel('填充数据.xlsx',header=3,usecols='C:F',index_col=None,dtype={'id':str,'store':str,'data':str})
16 start=datetime(2020,2,10)
17
18 for i in excel.index:
19 excel.at[i,'id']=i+1
20 excel['store'].at[i]='Yes' if i%2==0 else 'No'
21 #excel['data'].at[i]=start + timedelta(days=i) #加一天,最多只能加到天
22 #excel['data'].at[i]=datetime(start.year+i,start.month,start.day) #每一年加一
23 excel['data'].at[i]=add_month(start,i) #对每个月加一
24 excel.set_index('id',inplace=True)
25 print(excel)
26
27
28 timedelta函数:
29 >>>from datetime import timedelta
30 >>>time1=timedelta(seconds=23,minutes=35,hours=13,days=6)
31 >>>time2=timedelta(seconds=59,minutes=57,hours=18,days=8)
32 >>>time2-time1
33 datetime.timedelta(days=2, seconds=19356) #返回时间差