官方推荐:6种Pandas读取Excel的方法,太方便了~
大家好,这里是程序员晚枫。
很多朋友使用Python中的Pandas这个库进行Excel的数据处理
,数据处理从宏观上分为这么3个阶段:数据读取、数据处理、数据输出。
对于大多数新人来说,在数据读取的这一步就卡住了。
今天我们就来一起学习一下,Pandas官方推荐的6种Excel读取方式。
本文一共3部分:下载pandas和生成Excel文件、源码解读、读取Excel的6种方式。 <br/>如果你是一个熟练的Python使用者,你可以直接跳转到第3部分。 <br/>如果你是刚接触Python或者刚接触Pandas,建议你从第1部分开始看。
下文所有代码,都可以 ←左右→ 滑动查看,也可以直接复制粘贴。
1、准备工作
-
首先,你要下载最新版本的
Pandas
库。这样你才能使用Pandas,这个不难理解吧? -
其次,你要有一个和本文一样的
Excel
文件。为了确保大家和本文的操作统一,建议大家使用和本文同样的Excel文件。
怎么下载Pandas?怎么获取Excel?我们都用1行命令来自动搞定
,毕竟我们是自动化办公社区,如果这些操作不能自动化搞定,那岂不是太过分了?
你直接执行下面这行代码,就会生成一个和本文一模一样的Excel文件啦~
1行命令安装:pandas,版本:1.4.0
在你的电脑终端里面,执行下面这行命令,就可以自动安装pandas了~
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple python-office -U
1行命令生成Excel
Excel文件也不需要你四处下载,之前我们不是介绍了一个功能嘛,这里是它的用武之地👉:1行代码,自动生成带模拟数据的Excel文件
以后我们处理Excel的案例和演示,每次都会使用这种自动生成的方法,你当然也可以手动编辑一个,但如果未来我们要学习如何处理10w行的Excel文件呢?
不论你是手动生成还是百度云下载,都是一个及其缓慢的过程。
但用下面这个生成方式,模拟一个10w+数据的Excel文件,也是不过是一瞬间的事情,一定要尝试一下哟~你会发现新世界的。📱
import office office.excel.fake2excel(columns=['name', 'company_prefix','job'], rows=5)
在你的PyCharm里面,执行上面这行代码,就可以生成一个如下图所示👇,和本文一模一样的Excel文件啦~
2、pandas源代码里说了什么?
其实学习Pandas很简单,不用网上东奔西找,所有的代码功能,创始人和开发者们都通过注释的方法写在源代码里了。
如何查找pandas的源代码?
下载好pandas以后,我们就打开pandas的源码,看看pandas推荐的读取方式有哪些。pandas源码的路径:D:\你的python安装目录\Lib\site-packages\pandas\
打开源码后,pandas文件夹下有多个目录结构,如下图所示,我们要的读取Excel功能,在pandas\io\excel\_base.py
文件中的290行-350行
。如下图所示👇
既然找到了这段源码,那么问题来了👉源码告诉了我们什么?
3、6种读取Excel的方式
下面我们就根据上文获取到的pandas源码,逐个解析一下这6种读取excel的方式。
1、指定索引列读取
这种读取方式,适合Excel里的数据,本身有一列表示序号的情况。
pd.read_excel('fake2excel.xlsx', index_col=0) # 使用index_col=0,指定第1列作为索引列。
结果如下图所示:
- 列名没有对齐,不是代码运行有问题,是因为那么列被当作了索引列。
这种方式不符合我们这个文件的要求,所以我们可以进行以下修改:不要指定索引列。
代码和结果如下:
pd.read_excel('fake2excel.xlsx', index_col=None)
2、指定sheet读取
见名知意。
pd.read_excel(open('fake2excel.xlsx', 'rb'), sheet_name='Sheet2') # 使用sheet_name=0,指定读取sheet2里面的内容。
我们在原表里加入了sheet2,结果如下图所示:
- 这种情况下,不会读取sheet1里面的内容
3、取消header读取
读取本身没有列名的数据。
pd.read_excel('fake2excel.xlsx', index_col=None, header=None) # 使用header=None,取消header读取。
结果如下图所示:
- 这种情况下,适合原Excel表没有列名的情况。
- 我们的文件里有列名的情况下,列名也被当成了数据。
4、指定读取格式
这种适合高端玩家,在对数据处理精度要求比较高或者速度要求比较快的情况下。
pd.read_excel('fake2excel.xlsx', index_col=0, dtype={'age': float}) # 使用dtype,指定某一列的数据类型。
结果如下图所示:
- 我们添加了一列:年龄,本来是整数,但是指定float类型之后,读取出来成了小书。
- 这种读取,更适合对数据有特殊要求的情况,例如:金融行业。
5、自定义缺失值
这种使用的场景是什么呢?比如在收集信息的时候据时候,发现有人填的年龄是负数,那就自动给他把年龄清空掉,让他重新填写。
pd.read_excel('fake2excel.xlsx', index_col=None,na_values={'name':"庞强"}) # 使用na_values,自己定义不显示的数据
结果如下图所示:
- 我们的表格里,有个人的名字叫:庞强我们不想显示这个人的名字
- 于是我们就在na_values指定:name这一列是庞强的名字,置为空,在pandas里空值会用NaN表示。
6、处理Excel里的注释行
不仅Python是可以写注释的,Excel也是可以写注释的。很多人没有用过,用过的朋友在评论区说一下你为什么给Excel写注释吧~?
pandas提供了处理Excel注释行的方法。
pd.read_excel('fake2excel.xlsx', index_col=None, comment='#')
结果如下图所示:
4、写在最后
做为Python程序员,平时需要大家阅读源码,认清楚代码背后的原理和逻辑。
最近使用pandas比较多,正好pandas也可以处理excel,所以近期会持续的更新一些pandas使用的文章。
下一篇想看什么,在评论区告诉我吧

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
不负众望!优麒麟入选十大全球开源软件产品名单
2022年6月30日,“全球开源软件产品评选活动”颁奖仪式于线上成功举行。本次评选活动采取公开征集产品的形式,通过网络投票和线上答辩最终评选出10个具有创新性、模式差异化、市场竞争力的产品。优麒麟是由麒麟软件有限公司主导开发的全球开源项目,致力于为全球用户带来更智能的用户体验,此次也成功入选十大全球开源软件产品名单。 此番获奖不仅是优麒麟社区的荣誉,也是全体社区成员的共同荣誉,是大家共同努力的结果,促使优麒麟社区蓬勃发展。未来,优麒麟将在营造良好开源生态和技术发展方面持续努力,也期待越来越多的爱好者参与进来,为建设开源、贡献开源添砖加瓦! 关于优麒麟 优麒麟开源社区自 2013 年成立以来,已累计发行20个版本,下载量超过4000万次,向开源社区贡献代码数百万行,UKUI 核心组件被 Debian、ArchLinux、Ubuntu、openSUSE 等9款国内外主流 Linux 发行版仓库收录,被 Linux、Debian、Ubuntu、OpenStack、Ceph 等国际开源社区接收的 Patch 超过7400个,在全球范围内拥有数十万活跃用户。
- 下一篇
一大波开源小抄来袭
“小抄”一词大家应该不会陌生,它有个学名叫做“速查表”(cheatsheet)是用来快速找到你知识点和答案的表格,因为其有体积小、不易察觉等特点,频繁出现在考场和演讲中... 友情提示⚠️:考试作弊一时爽,抓到就是火葬场! 记得我大学时有一次考试,老师允许我们每个人带一张 A4 纸大小的“小抄”进入考场,正反面可以随便写东西。我带着那张密密麻麻没有一块空白的“小抄”,信心满满地踏入考场。这门课是我所有课里考的分数最高的一门,后来补考的同学纷纷找我复印这张“小抄”。 时至今日,虽然我已不会再考试,但手边还是会常备小抄。比如:写代码的时候突然想不起了语法、代码片段、命令,这个时候小抄(速查表)可以发挥奇效!有了它瞬间就能找到答案,复制/粘贴 就能解决问题,极大地提高了开发效率。 下面,就是专为程序员准备的「开源小抄」集合,内容包含了 Python、JavaScript、Linux、Git、K8s 等,由于种类众多便于阅读,我将它们分成了:语言、命令和综合三大类。 闲话少说,直接上项目! 一、语言类 写代码就像写作文都有提笔忘字的时候,但绝不能让这种情况打断沉浸式地编码的氛围。下面的速查表项...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS关闭SELinux安全模块
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Docker安装Oracle12C,快速搭建Oracle学习环境
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长