pandas 读取excel文件

  • 一 read_excel() 的基本用法
  • 二 read_excel() 的常用的参数:
  • 三 示例
    • 1. IO:路径
    • 2. sheet_name:指定工作表名
    • 3. header :指定标题行
    • 4. names: 指定列名
    • 5. index_col: 指定列索引
    • 6. skiprows:跳过指定行数的数据
    • 7. skipfooter:省略从尾部的行数据
    • 8.dtype 指定某些列的数据类型

pandas 读取excel文件使用的是 read_excel方法。本文将详细解析read_excel方法的常用参数,以及实际的使用示例

一 read_excel() 的基本用法

import pandas as pdfile_name = 'xxx.xlsx'
pd.read_excel(file_name)

二 read_excel() 的常用的参数:

  1. io: excel路径 可以是文件路径, 类文件对象, 文件路径对象等。

  2. sheet_name=0: 访问指定excel某张工作表。sheet_name可以是str, int, list 或 None类型, 默认值是0。

    • str类型 是直接指定工作表的名称

    • int类型 是指定从0开始的工作表的索引, 所以sheelt_name默认值是0,即第一个工作表。

    • list类型 是多个索引或工作表名构成的list,指定多个工作表。

    • None类型, 访问所有的工作表

    • sheet_name=0: 得到的是第1个sheet的DataFrame类型的数据

    • sheet_name=2: 得到的是第3个sheet的DataFrame类型的数据

    • sheet_name=‘Test1’: 得到的是名为’Test1’的sheet的DataFrame类型的数据

    • sheet_name=[0, 3, ‘Test5’]: 得到的是第1个,第4个和名为Test5 的工作表作为DataFrame类型的数据的字典。

  3. header=0:header是标题行,通过指定具体的行索引,将该行作为数据的标题行,也就是整个数据的列名。默认首行数据(0-index)作为标题行,如果传入的是一个整数列表,那这些行将组合成一个多级列索引。没有标题行使用header=None。

  4. name=None: 传入一列类数组类型的数据,用来作为数据的列名。如果文件数据不包含标题行,要显式的指出header=None

  5. skiprows:int类型, 类列表类型或可调函数。 要跳过的行号(0索引)或文件开头要跳过的行数(int)。如果可调用,可调用函数将根据行索引进行计算,如果应该跳过行则返回True,否则返回False。一个有效的可调用参数的例子是lambda x: x in [0, 1, 2]。

  6. skipfooter=0: int类型, 默认0。自下而上,从尾部指定跳过行数的数据。

  7. usecols=None: 指定要使用的列,如果没有默认解析所有的列。

  8. index_col=None: int或元素都是int的列表, 将某列的数据作为DataFrame的行标签,如果传递了一个列表,这些列将被组合成一个多索引,如果使用usecols选择的子集,index_col将基于该子集。

  9. squeeze=False, 布尔值,默认False。 如果解析的数据只有一列,返回一个Series。

  10. dtype=None: 指定某列的数据类型,可以使类型名或一个对应列名与类型的字典,例 {‘A’: np.int64, ‘B’: str}

  11. nrows=None: int类型,默认None。 只解析指定行数的数据。


三 示例

如图是演示使用的excel文件,它包含5张工作表。

1. IO:路径

举一个IO为文件对象的例子, 有些时候file文件路径的包含较复杂的中文字符串时,pandas 可能会解析文件路径失败,可以使用文件对象来解决。

file = 'xxxx.xlsx'
f = open(file, 'rb')
df = pd.read_excel(f, sheet_name='Sheet1')f.close()  # 没有使用with的话,记得要手动释放。# ------------- with模式 -------------------
with open(file, 'rb') as f:df = pd.read_excel(f, sheet_name='Sheet1')

2. sheet_name:指定工作表名

sheet_name=‘Sheet’, 指定解析名为"Sheet1"的工作表。返回一个DataFrame类型的数据。

df = pd.read_excel(file, sheet_name='Sheet1')

sheet_name=[0, 1, ‘Sheet1’], 对应的是解析文件的第1, 2张工作表和名为"Sheet1"的工作表。它返回的是一个有序字典。结构为{name:DataFrame}这种类型。

df_dict = pd.read_excel(file, sheet_name=[0,1,'Sheet1'])

sheet_name=None 会解析该文件中所有的工作表,返回一个同上的字典类型的数据。

df_dict = pd.read_excel(file, sheet_name=None)

3. header :指定标题行

header是用来指定数据的标题行,也就是数据的列名的。本文使用的示例文件具有中英文两行列名,默认header=0是使用第一行数据作为数据的列名。

df_dict = pd.read_excel(file, sheet_name='Sheet1')

header=1, 使用指定使用第二行的英文列名。

df_dict = pd.read_excel(file, sheet_name='Sheet1', header=1)

需要注意的是,如果不行指定任何行作为列名,或数据源是无标题行的数据,可以显示的指定header=None来表明不使用列名。

df_dict = pd.read_excel(file, sheet_name='Sheet1', header=None)

4. names: 指定列名

指定数据的列名,如果数据已经有列名了,会替换掉原有的列名。

df = pd.read_excel(file, sheet_name='Sheet1', names=list('123456789ABCDE'))

上图是header=0默认第一行中文名是标题行,最后被names给替换了列名,如果只想使用names,而又对源数据不做任何修改,我们可以指定header=None

df = pd.read_excel(file, sheet_name='Sheet1', names=list('123456789ABCDE'), header=None)

5. index_col: 指定列索引

df = pd.read_excel(file, sheet_name='Sheet1', header=1, index_col=0)

6. skiprows:跳过指定行数的数据

df = pd.read_excel(file, sheet_name='Sheet1', skiprows=0)

df = pd.read_excel(file, sheet_name='Sheet1', skiprows=[1,3,5,7,9,])

header与skiprows在有些时候效果相同,例skiprows=5和header=5。因为跳过5行后就是以第六行,也就是索引为5的行默认为标题行了。需要注意的是skiprows=5的5是行数,header=5的5是索引为5的行。

df = pd.read_excel(file, sheet_name='Sheet1', header=5)

df = pd.read_excel(file, sheet_name='Sheet1', skiprows=5)

7. skipfooter:省略从尾部的行数据

原始的数据有47行,如下图所示:

从尾部跳过5行:

df = pd.read_excel(file, sheet_name='Sheet1', skipfooter=5)

8.dtype 指定某些列的数据类型

示例数据中,测试编码数据是文本,而pandas在解析的时候自动转换成了int64类型,这样codes列的首位0就会消失,造成数据错误,如下图所示

指定codes列的数据类型:

df = pd.read_excel(file, sheet_name='Sheet1', header=1, dtype={'codes': str})

pandas 读取excel文件相关推荐

  1. Python+Pandas读取Excel文件分析关系最好的两个演员

    董老师又双叒叕送书啦,6本<Python程序设计基础与应用(第2版)> 推荐图书: <Python程序设计(第3版)>,(ISBN:978-7-302-55083-9),董付国 ...

  2. Python+pandas读取Excel文件统计最受欢迎的前3位演员

    推荐教材:<Python程序设计基础与应用>(ISBN:9787111606178),董付国,机械工业出版社,2018.8出版,2021.3第11次印刷 图书详情: 配套资源: 用书教师可 ...

  3. Python使用pandas读取Excel文件数据和预处理小案例

    假设有Excel文件data.xlsx,其中内容为 现在需要将这个Excel文件中的数据读入pandas,并且在后续的处理中不关心ID列,还需要把sex列的female替换为1,把sex列的male替 ...

  4. Pandas读取excel文件(pandas.read_excel)

    Pandas读取excel文件[pandas.read_excel] 说明 一.pandas.read_excel函数及参数 二.io 三.sheet_name 四.header.index_col ...

  5. Python3使用pandas读取excel文件并用列表输出

    Python3使用pandas读取excel文件并用列表输出 # !user/bin/env python3.9 # -*- utf-8 -*- # Author 郑浩import numpy as ...

  6. python pandas读取excel文件

    python pandas读取excel文件 data=pd.read_excel('C:\Users\86188\python\dummy.xlsx') 会报错:SyntaxError: (unic ...

  7. pandas 读取excel文件的指定列

    使用 pandas 读取 excel 文件的指定列,可以使用 pd.read_excel() 函数,并通过 usecols 参数指定要读取的列.例如: import pandas as pddf = ...

  8. Python使用pandas读取Excel文件多个WorkSheet的数据并绘制柱状图和热力图

    问题描述:在当前文件夹中有一个存放同一门课程两个班级同学成绩的Excel文件"学生成绩.xlsx",每个工作表中存放一个班级的成绩.编写程序,使用pandas读取其中的数据,然后绘 ...

  9. Python+pandas读取Excel文件并统计演员参演电影数量

    Excel样本数据请参考Python读取Excel文件并统计演员参演电影 >>> import pandas as pd >>> df = pd.read_exce ...

最新文章

  1. 基于Python, Selenium, Phantomjs无头浏览器访问页面
  2. Elasticsearch 5 Ik+pinyin分词配置详解
  3. mysql页码_PHP+MySQL实现输入页码跳转到指定页面功能示例
  4. U-Boot 之三 U-Boot 源码文件解析及移植过程详解
  5. 类选项html 最后无距离,各种距离 一览无遗
  6. 开源RefreshListView下拉刷新效果
  7. 10天内构建良好的REST API的指南
  8. IDEA 创建git 分支 拉取分支
  9. 在 Windows Azure 虚拟机上运行 SQL Server 工作负荷的十大注意事项
  10. yii2添加自定义字段
  11. 2015Mac版飞秋无法接受文件夹!!!
  12. 他是中国最牛X的黑客,曾让6个国家束手无策,却被怀疑是精神病
  13. 苹果AirPlay浅析
  14. 【开发心得】如何免费用python刷网站的百度排名(已实测含源码)
  15. 一个非常好用的数学函数图像生成工具
  16. bitbucket创建团队
  17. 实现自己人生小目标之微信抢红包项目
  18. 如何在 Ubuntu 上使用 AppImage 软件镜像包?
  19. 老用户无法开互联网定制套餐?工信部责令三大运营商整改
  20. Linux系统InfluxDB数据和日志目录迁移教程

热门文章

  1. php生成订单 调微信支付,PHP后台微信支付使用方法
  2. html表格翻页简单,利用jQuery实现一个简单的表格上下翻页效果
  3. 马克思主义哲学(哲学概论)
  4. 跳一跳改分java源码_解密微信小程序漏洞:可下载任意小游戏源代码,“跳一跳”可改分...
  5. 区块链第一个落地场景,居然是“发票”?
  6. JavaScript实现二级联动下拉菜单
  7. 《输赢》精彩段落总结
  8. Extreme DAX中文第1章 商业智能中的DAX
  9. redis的发布和订阅功能
  10. 【GPS - NMEA-0183协议】