使用Pandas的read_excel读取复杂Excel表单

Excel作为常见数据存储、报表生成和数据分析的主力军,随着数据体量的增长,和数据分析、挖掘,BI更进一步需要,如何快速地使用PandasETL Excel或者分析Excel就变得很重要了。

常见特殊表单

今天讨论的就是几个比较特殊的表单形式,

(图1)

 

(图2)

 

(图3)

 处理方式

碰到面的这几种形式,你会怎么做?

第一个和第二个图都是多行表头的形式,pandasread_excel运行指定从指定行开始读取(就是忽略某些行)以及指定哪些为表头,

import pandas as pd

(1)图1的处理代码实现:

df = pd.read_excel('3headers_demo.xlsx'
                   ,sheet_name="Sheet1"
                   ,header=[0,1,2])
 df

 

图1读取结果

 

df=df.set_index(df.columns[0])
df=df.stack(level=0).stack(level=0).reset_index()
df.columns=list(df.columns[1:].insert(0,'Date'))
df
图1处理结果

 

(2)图2的代码实现:

df = pd.read_excel('3headers_demo.xlsx'
                   ,sheet_name="Sheet4"
                   ,skiprows=1
                   ,header=[0,1,2])
df=df.iloc[:,1:]
df=df.set_index(df.columns[0])
df

得到和图1一样的结果,接下来的处理便一样了。

(3)图3的代码实现:

图3是一种常见的MultiIndex形式:

df = pd.read_excel('3headers_demo.xlsx'
                   ,sheet_name="Sheet3"
                   ,index_col=[0,1])
                   
df.reset_index()
图3处理结果

附录

Pandas不仅仅可以方便读取上面的复杂格式数据,也提供了非常丰富的数据转换函数,可以详细阅读这篇文章,代码为主,https://pandas.pydata.org/pandas-docs/stable/user_guide/reshaping.html

 

 

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

David-Chow

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值