python处理excel数据(含日期数据)

打开.xls文件,内容大致如下:

 1、准备读取xls文件,再提取“平均风速”这列,但是按照下面这样写会发现不对(错误忘记是啥了,好像是key错误了):

data_wind = pd.read_excel('**.xls', sheet_name=worksheet_name)
wind = data_wind['平均风速(0.1m/s)']

worksheet_name是所属工作表的名字,改写一下就可以了,让列名字成为表头:

data_wind = pd.read_excel('**.xls', sheet_name=worksheet_name, header=0)

2、接下来准备提取日期数据,将“年、月、日”三列汇整成日期格式:

date = data_wind[['年', '月', '日']]
date_cal = pd.to_datetime(date)

如果只是这样写会报错,说没有[year month day]数据,进行修改:

date = data_wind[['年', '月', '日']]
date.rename(columns={'年': 'year', '月': 'month', '日': 'day'}, inplace=True)
date_cal = pd.to_datetime(date)

对列重命名一下就可以,这样不会报错,但是会有个警告,消除警告可以加上copy():

date = data_wind[['年', '月', '日']].copy()
date.rename(columns={'年': 'year', '月': 'month', '日': 'day'}, inplace=True)
date_cal = pd.to_datetime(date)

成功输出日期类似1957-01-01,如果想修改输出格式,可以紧接着加一句:

date = date_cal.dt.strftime('%Y%m%d')

修改后的输出格式就类似19570101

3、补充缺失的时间序列,并在其他列对应的缺失值填入指定值

date_range = pd.date_range(start=date_cal.min(), end=date_cal.max(), freq="D")
df = combinations.set_index('date', drop=False).reindex(index=date_range, fill_value=32766)
df['date'] = date_range.strftime('%Y%m%d')

combinations是将好几列数据整合后的表格,fill_value就是指定值。

这一步啥意思呢,就是说combinations类似:

 date那列少了一天的数据,我要做的就是补上这个日期,这个日期对应的value、pre、hum都填入指定值32766(station也跟着填了32766,只不过后来调整过来了),最后调整日期格式:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值