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) #返回时间差