pandas 读取excel文件

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 pd

file_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。
  3. str类型 是直接指定工作表的名称
  4. int类型 是指定从0开始的工作表的索引, 所以sheelt_name默认值是0,即第一个工作表。
  5. list类型 是多个索引或工作表名构成的list,指定多个工作表。
  6. None类型, 访问所有的工作表
  7. sheet_name=0: 得到的是第1个sheet的DataFrame类型的数据
  8. sheet_name=2: 得到的是第3个sheet的DataFrame类型的数据
  9. sheet_name=’Test1′: 得到的是名为’Test1’的sheet的DataFrame类型的数据
  10. sheet_name=[0, 3, ‘Test5’]: 得到的是第1个,第4个和名为Test5 的工作表作为DataFrame类型的数据的字典。
  11. header=0:header是标题行,通过指定具体的行索引,将该行作为数据的标题行,也就是整个数据的列名。默认首行数据(0-index)作为标题行,如果传入的是一个整数列表,那这些行将组合成一个多级列索引。没有标题行使用header=None。
  12. name=None: 传入一列类数组类型的数据,用来作为数据的列名。 如果文件数据不包含标题行,要显式的指出header=None
  13. skiprows:int类型, 类列表类型或可调函数。 要跳过的行号(0索引)或文件开头要跳过的行数(int)。如果可调用,可调用函数将根据行索引进行计算,如果应该跳过行则返回True,否则返回False。一个有效的可调用参数的例子是lambda x: x in [0, 1, 2]。
  14. skipfooter=0: int类型, 默认0。自下而上,从尾部指定跳过行数的数据。
  15. usecols=None: 指定要使用的列,如果没有默认解析所有的列。
  16. index_col=None: int或元素都是int的列表, 将某列的数据作为DataFrame的行标签,如果传递了一个列表,这些列将被组合成一个多索引,如果使用usecols选择的子集,index_col将基于该子集。
  17. squeeze=False, 布尔值,默认False。 如果解析的数据只有一列,返回一个Series。
  18. dtype=None: 指定某列的数据类型,可以使类型名或一个对应列名与类型的字典,例 {‘A’: np.int64, ‘B’: str}
  19. nrows=None: int类型,默认None。 只解析指定行数的数据。

三 示例

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

pandas 读取excel文件

; 1. IO:路径

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

file = 'xxxx.xlsx'
f = open(file, 'rb')
df = pd.read_excel(f, sheet_name='Sheet1')

f.close()

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')

pandas 读取excel文件

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

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

pandas 读取excel文件

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

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

pandas 读取excel文件

3. header :指定标题行

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

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

pandas 读取excel文件

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

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

pandas 读取excel文件

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

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

pandas 读取excel文件

4. names: 指定列名

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

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

pandas 读取excel文件

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

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

pandas 读取excel文件

5. index_col: 指定列索引

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

pandas 读取excel文件

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

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

pandas 读取excel文件
df = pd.read_excel(file, sheet_name='Sheet1', skiprows=[1,3,5,7,9,])

pandas 读取excel文件

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)

pandas 读取excel文件
df = pd.read_excel(file, sheet_name='Sheet1', skiprows=5)

pandas 读取excel文件

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

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

pandas 读取excel文件

从尾部跳过5行:

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

pandas 读取excel文件

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

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

pandas 读取excel文件

指定codes列的数据类型:

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

pandas 读取excel文件

Original: https://blog.csdn.net/littleRpl/article/details/113996603
Author: littleRpl
Title: pandas 读取excel文件

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/731683/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 【Python基础教程】类的定义和使用

    哈喽兄弟们,今天咱们分享一下类的定义和使用。 在Python中,类表示具有相同属性和方法的对象的集合。在使用类时,需要先定义类,然后再创建类的实例,通过类的实例就可以访问类中的属性…

    Python 2023年11月1日
    037
  • Pnadas学习day-01

    Pandas学习day-01 import pandas as pd import numpy as np Pandas基本数据结构 pandas中有两种基本结构 Series 一…

    Python 2023年8月9日
    051
  • pytest+python3+requests+jenkins+git+allure接口测试框架

    本人将自己之前写的基于pytest和requests的 接口自动化测试框架分享出来。 请参考gitee上项目的使用说明。这里不再赘述。后期会考虑录制一个视频来介绍该框架的具体使用及…

    Python 2023年9月12日
    031
  • Python DataFrame结构及索引操作

    DataFrame Series结构 Dataframe组成 Dataframe索引操作 DataFrame的存储和读取操作(关联数据库) DataFrame高级操作 替换操作 清…

    Python 2023年8月6日
    029
  • 机器学习-数据科学库(HM)(一)-matplotlib学习

    基础知识 1.课程概要(1)基础概念(2)matplotlib 画图(3)numpy处理数值型数据(4)pandas处理字符串 字典 列表 基础概念 为什么学习数据分析? a.和爬…

    Python 2023年9月5日
    061
  • Python图像处理丨带你掌握图像几何变换

    摘要:本篇文章主要讲解图像仿射变换和图像透视变换,通过Python调用OpenCV函数实。 本文分享自华为云社区《​​[Python图像处理] 十二.图像几何变换之图像仿射变换、图…

    Python 2023年5月24日
    052
  • Azure DevOps Server 设置项目管理用户,用户组

    一,引言 Azure DevOps Server 搭建完成后,关于如何进行项目管理,项目成员管理等,我们接着上一篇文章,继续讲解 Azure DevOps Server 的用户,用…

    Python 2023年10月15日
    040
  • python与matlab放大局部图

    在数据可视化过程中数据呈现非线性关系的情况下,有两种常用的方式去解决显示问题: 调整坐标轴比例 创建图中放大局部图 调整比例 在坐标轴调整比例过程中, python在 matplo…

    Python 2023年9月1日
    028
  • 海思3516系列芯片SPI速率慢问题深入分析与优化(基于PL022 SPI 控制器)

    海思3516系列芯片SPI速率慢问题深入分析与优化(基于PL022 SPI 控制器) 我在某个海思主控的项目中需要使用SPI接口来驱动一块液晶屏,液晶屏主控为 st7789,分辨率…

    Python 2023年10月17日
    048
  • python的time库详解

    time库的使用:Python中内置了一些与时间处理相关的库,如time、datatime和calendar库。 其中time库是Python中处理时间的标准库,是最基础的时间处理…

    Python 2023年6月9日
    055
  • Pandas知识点-详解转换函数transform

    Pandas知识点-详解转换函数transform transform()是pandas中的转换函数,对DataFrame执行传入的函数后返回一个相同形状的DataFrame。用于…

    Python 2023年8月16日
    046
  • Django 连接数据库 MySQL

    默认用的是sqlite3 Database https://docs….

    Python 2023年6月9日
    070
  • Pandas库

    Pandas是python第三方库,提供高性能易用数据类型和分析工具。Pandas基于NumPy实现,常与NumPy和Matplotlib一同使用。pandas库引用: impor…

    Python 2023年8月9日
    029
  • [CTF]-HECTF2021部分复现

    HECTF2021部分复现 MISC * 快来公众号ya JamesHarden 捉迷藏 迷途的狗狗 snake CRYPTO * 签到 encode RSA_e_n re_rsa…

    Python 2023年9月19日
    064
  • 防抖和节流

    使用场景: 防抖在连续的事件,只需触发一次回调的场景有:搜索框搜索输入。只需用户最后一次输入完,再发送请求。窗口大小resize。只需窗口调整完成后,计算窗口大小。防止重复渲染。登…

    Python 2023年9月29日
    035
  • 【Python学习】matplotlib学习总结——折线图

    一、安装matplotlib pip install matplotlib 二、开始画图 接下来以一个例子来总结下折线图常见的功能吧~ 任务:A地 和 B地 10点12点 的温度折…

    Python 2023年9月5日
    047
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球