专栏首页有关SQL使用Pandas读取复杂Excel表单

使用Pandas读取复杂Excel表单

传统企业里,Excel仍然是数据存储,报表生成和数据分析的主力军,随着数据体量的增长,和数据分析、挖掘,BI更进一步需要,如何快速地使用Pandas来ETL Excel或者分析Excel就变得很重要了。

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

(图1)

(图2)

(图3)

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

这里我介绍下我的做法,

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

import pandas as pd

图1的代码实现

df = pd.read_excel('3headers_demo.xlsx'
                   ,sheet_name="Sheet1"
                   ,header=[0,1,2])
 df
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

图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是一种常见的MultiIndex形式

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

Pandas不仅仅可以方便读取上面的复杂格式数据,也提供了非常丰富的数据转换函数,

有兴趣的同学可以详细阅读这篇文章,代码为主,https://pandas.pydata.org/pandas-docs/stable/user_guide/reshaping.html

本文分享自微信公众号 - 有关SQL(SQLHub)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-09-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 漫画:要跳槽?这道缓存设计题你有必要看看!

    金九银十招聘季,社畜跳槽,学生出笼,也是非常热闹。不过今年继续互联网寒冬,能苟着还是苟着吧,猥琐发育别浪。

    Lenis
  • Docker 上运行 SQL Server

    SQL Server 真是越来越有看头。当我们还在为 Linux 上运行 SQL Server 而兴奋的时候,SQL Server 已经开启了 容器化之路,至此...

    Lenis
  • Shell 编程的老臣 - sed

    shell 的世界里有两个好兄弟:sed 和 gawk. 今天先讲其一 sed.

    Lenis
  • Pandas入门操作

    俺也想起舞
  • 在郑州,你该买哪里的房子?

    某次和领导吃饭,无意中提到了房子的话题,说了几句自己的心得经验(虽然没有再次实操的资本),却给领导留下了深深的印象(领导,你不是又要在郑州置业了吧)。

    WindyQin
  • Python 数据分析初阶

    这里可以单独查看其中的内容 data['nick'],计算其中的大小则使用 data['nick'].value_counts()。

    zucchiniy
  • 2 个数据处理的小功能,非常实用!

    0.25 版本开始支持 query 方法,可读性上又获得大幅提升,类似 sql 查询数据的写法,更加人性化。

    double
  • Python数据科学(六)- 资料清理(Ⅰ)1.Pandas1.资料筛选2.侦测遗失值3.补齐遗失值

    成功爬取到我们所需要的数据以后,接下来应该做的是对资料进行清理和转换, 很多人遇到这种情况最自然地反应就是“写个脚本”,当然这也算是一个很好的解决方法,但是,p...

    意气相许的许
  • 十分钟掌握Pandas基本操作(上)

    为了更好地掌握数据科学必备库Pandas的基本使用,本文通过精灵宝可梦的数据集实战,我们一起过一遍Pandas的基本操作,文中的代码都附有注释,并给出了结果的配...

    老肥码码码
  • 快乐学习Pandas入门篇:Pandas基础

    寄语:本文对Pandas基础内容进行了梳理,从文件读取与写入、Series及DataFrame基本数据结构、常用基本函数及排序四个模块快速入门。同时,文末给出了...

    Datawhale

扫码关注云+社区

领取腾讯云代金券