pandas处理excel表格

1.需求

今天有同学问我一个小需求,如下:

在这里插入图片描述

要把以上excel表格中8点、14点、20点的数据,提取出来,然后转换成如下excel数据:

这里表格中sheet_name太多,复制、粘贴太过于枯燥! 哭哭哭!

2.使用pandas处理

每个excel表格中sheet_name都是从 0629 到 0903,而且每个sheet_name数据都是一样的,我们读取一个sheet_name之后就可以循环读取,手动复制、粘贴太枯燥了…

2.1 观察数据

我们先读取这个表格:

import numpy as np
import pandas as pd

path = r'C:\Users\JackYang\Desktop\数据处理\1仓.xlsx'
data = pd.read_excel(path, sheet_name='0629')
print(data.iloc[1, 6])
data

2.2 先读取表格中的一个sheet页

8点、14点、20点每个数据之间相差的间隔都是 4。这里我们就可以求出8点的数据后,使用循环,代码如下:

def read_sheet(path, begin_sheet_name: str):  
  
    print(begin_sheet_name)  
    data = pd.read_excel(path, sheet_name=begin_sheet_name)  
  
    # 1.日期  
    my_str = data.iloc[0, 0]  
    data_time = my_str[my_str.index('时') + 3: my_str.index('日') + 1]  
    data_time = pd.Series(data_time)  
  
    # 提取一个sheet页的数据  
    res = pd.DataFrame()  
    for i in [0, 4, 8]:  
        # 2.时间  
        time = data.iloc[1, 2 + i]  
        time = pd.Series(time)  
        time  
  
        # 3.外温  
        out_temp = data.iloc[2, 2 + i]  
        out_temp = pd.Series(out_temp)  
  
        # 4.外湿  
        out_wet = data.iloc[3, 2 + i]  
        out_wet = pd.Series(out_wet)  
  
        # 5.仓湿  
        w_wet = data.iloc[4, 2 + i]  
        w_wet = pd.Series(w_wet)  
  
        # 6. 仓1 , 2, 3, 4,5  
        w1 = pd.Series(data.iloc[5, 3 + i])  
        w2 = pd.Series(data.iloc[6, 3 + i])  
        w3 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值