
人们经常用pandas处理表格型数据,时常需要读入excel表格数据,很多人一般都是直接这么用:pd.read_excel(“文件路径文件名”),再多一点的设置可能是转义一下路径中的斜杠,一旦原始的excel表不是很规整,这样简单读入势必报错!
其实这个函数有很多参数可以设置,为了应对各式excel表满足各种读入的需求,我们来详细了解下pd.excel()中的主要参数。
首先,认识一下pd.read_excel(),函数的官方文档是这么说的:将Excel文件读取到pandas DataFrame中,支持本地文件系统或URL的’xls’和’xlsx’文件扩展名,带有这两种扩展名的文件,函数都可以处理;
然后它的函数完整版长这个样子:
没想到吧,它它它…它居然有二十多个参数,是不是有点出乎意料,接下来认识下这些参数都是做什么用的吧!
io参数可以接受的有:str,Excel文件,xlrd.Book,路径对象或类似文件的对象,其中最常用的是str,一般是文件路径+文件名,需要注意的是文件名字不要漏掉后缀,即文件扩展名,表明文件类型的那个!有时候需要对路径中的”\”进行转义,io参数没有默认值,必须传入。
举个例子:
输出结果:
sheet_name参数可以接收的有:str,int,list或None,默认0
其中,字符串用于工作表名称。 整数用于零索引工作表位置。 字符串/整数列表用于请求多个工作表。设置None获取所有工作表。
有时候一个excel工作簿中包含有很多个sheet工作表,如果不指定默认为0,数据读入的时候默认读入的是第一个位置的sheet。
常用的是指定sheet位置或者名字,还是来个例子:
输出结果和不指定sheet时的结果是一样的,因为默认的就是第0个sheet:
指定另一个位置的sheet:
输出结果:
输出结果,能够看到结果和sheet_name=1的结果是一样的:
可以看一下原表中sheet的名字就能理解名字为data2的sheet正好在第1个位置(名字为data1的sheet在第0个位置)
通过名字读取另一个sheet就不在这里赘述了,我们看看这个参数还有两种可以接收的对象,挨个看下是什么样的效果吧。
sheet_name参数的其他设置
输出结果:
输出结果:
能够看到比上边只读入两个sheet工作表的命令相比,这里多了data3这个工作表!
综上,sheet_name空值既可以通过sheet位置也可以通过sheet名字来指定读入哪个sheet的数据。
这个参数是用来指定哪一行作为列名的,默认是第0行,接收的参数可以是整数(指定第几行作为列名),可以是有整数组成的列表(指定哪几行作为列名,是的,列名可以有多行,是不是有点突破认知?),也可以是None(没有列名)。
比如这种数据就需要在读入数据的时候指定哪一行作为列名:
开头有空行,直接读取试一下:
是这种效果(截取部分数据图像):
header参数可以有效的解决这个问题,可以看到行标签为1的数据才是我们需要的列名,所以在读取数据的时候进行设置就可以了:
输出结果:
这样就符合要求了!
对header参数的其他设置
为了满足好奇心,我们也实验一下其他的参数,比如整数组成的列表,提前预告,读出来不一定符合业务逻辑要求哦。
输出结果:
能看到的确有两行列名!
如果不要列名是什么样子呢?
输出结果:
不指定列名后的效果就是这样的了!
官方文档说这个参数接收 array-like, 默认 None,表示要使用的列名列表,如果不需要列名,请设置header = None,如果header = None和names参数都设置的话,依然会显示names指定的列名。
还是通过实例来感受下参数的作用吧,为了节省篇幅,代码放入截图中:
如果原始表格中的列名不符合需求,比如上图中很明显是进行聚合后系统生成的列名,在读入数据的时候可以根据需求自定义列名,需要注意的是指定的列名和原数据中的列名是依据位置一一对应的,顺序不要乱了!
官方文档说这个参数接收整数,或者由整数组成的列表,默认是None。
这个参数的作用是指定用哪一列做为行索引。如果传给参数的是整数n,则表示指定第n列作为行索引,如果传入的是列表,则表示需要指定多列作为行索引。上一篇文章中介绍了header参数,是指定由哪一行作为列名,也是传入整数或者整数组成的列表,可以对比记忆。
来个例子感受一下:
上边的例子分别采用了默认值None,整数0和列表[0,1]对index_col进行了设置,用法和效果一目了然。
看下官方文档是怎么说的:该参数接收整数,字符或者类似列表的序列,默认值是None,返回的是列的子集,直白点解释就是在读入表格的时候不是所有的列都会被读入,可以通过usecols参数来设置要把哪些列读取进来。
温馨提示:如果设置了names参数,注意设置的列名个数要和读取的列数一致
来个直观的例子感受下:
结合对参数的文字说明看例子,还是蛮清楚明白的。
来自官方文档的解释:接收布尔值,当取值为True的时候,如果解析的数据仅包含一列,则返回Series。默认值是False,即只有一列也返回Dataframe。
举例说明:
如果需要读进来一个Series,可以通过squeeze参数实现。
惯例还是官方文档的解释:输入表示数据类型的名称字符或者字典,如果输入的是字符表示整个表格的数据都转换成指定的数据类型,如果输入的是字典,那么每个字段可以指定不同的数据类型。
来个例子帮助理解:
由于整个表格中既有文本又有数值,如果要设置成统一的数据类型只能设置成字符型了;针对每一列设置不同的数据类型,效果还是很明显的。
篇幅限制,对pd.read_excel()函数参数的介绍先到这里,剩下的参数在后续的文章中接续介绍哦。
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
2025 年,数据如同数字时代的 DNA,编码着人类社会的未来图景,驱动着商业时代的运转。从全球互联网用户每天产生的2.5亿TB数据, ...
2025-06-052025 年,数据如同数字时代的 DNA,编码着人类社会的未来图景,驱动着商业时代的运转。从全球互联网用户每天产生的2.5亿TB数据, ...
2025-05-27CDA数据分析师证书考试体系(更新于2025年05月22日)
2025-05-26解码数据基因:从数字敏感度到逻辑思维 每当看到超市货架上商品的排列变化,你是否会联想到背后的销售数据波动?三年前在零售行 ...
2025-05-23在本文中,我们将探讨 AI 为何能够加速数据分析、如何在每个步骤中实现数据分析自动化以及使用哪些工具。 数据分析中的AI是什么 ...
2025-05-20当数据遇见人生:我的第一个分析项目 记得三年前接手第一个数据分析项目时,我面对Excel里密密麻麻的销售数据手足无措。那些跳动 ...
2025-05-20在数字化运营的时代,企业每天都在产生海量数据:用户点击行为、商品销售记录、广告投放反馈…… 这些数据就像散落的拼图,而相 ...
2025-05-19在当今数字化营销时代,小红书作为国内领先的社交电商平台,其销售数据蕴含着巨大的商业价值。通过对小红书销售数据的深入分析, ...
2025-05-16Excel作为最常用的数据分析工具,有没有什么工具可以帮助我们快速地使用excel表格,只要轻松几步甚至输入几项指令就能搞定呢? ...
2025-05-15数据,如同无形的燃料,驱动着现代社会的运转。从全球互联网用户每天产生的2.5亿TB数据,到制造业的传感器、金融交易 ...
2025-05-15大数据是什么_数据分析师培训 其实,现在的大数据指的并不仅仅是海量数据,更准确而言是对大数据分析的方法。传统的数 ...
2025-05-14CDA持证人简介: 万木,CDA L1持证人,某电商中厂BI工程师 ,5年数据经验1年BI内训师,高级数据分析师,拥有丰富的行业经验。 ...
2025-05-13CDA持证人简介: 王明月 ,CDA 数据分析师二级持证人,2年数据产品工作经验,管理学博士在读。 学习入口:https://edu.cda.cn/g ...
2025-05-12CDA持证人简介: 杨贞玺 ,CDA一级持证人,郑州大学情报学硕士研究生,某上市公司数据分析师。 学习入口:https://edu.cda.cn/g ...
2025-05-09CDA持证人简介 程靖 CDA会员大咖,畅销书《小白学产品》作者,13年顶级互联网公司产品经理相关经验,曾在百度、美团、阿里等 ...
2025-05-07相信很多做数据分析的小伙伴,都接到过一些高阶的数据分析需求,实现的过程需要用到一些数据获取,数据清洗转换,建模方法等,这 ...
2025-05-06以下的文章内容来源于刘静老师的专栏,如果您想阅读专栏《10大业务分析模型突破业务瓶颈》,点击下方链接 https://edu.cda.cn/g ...
2025-04-30CDA持证人简介: 邱立峰 CDA 数据分析师二级持证人,数字化转型专家,数据治理专家,高级数据分析师,拥有丰富的行业经验。 ...
2025-04-29CDA持证人简介: 程靖 CDA会员大咖,畅销书《小白学产品》作者,13年顶级互联网公司产品经理相关经验,曾在百度,美团,阿里等 ...
2025-04-28CDA持证人简介: 居瑜 ,CDA一级持证人国企财务经理,13年财务管理运营经验,在数据分析就业和实践经验方面有着丰富的积累和经 ...
2025-04-27