python使用pandas读取excel文件中数据的四种方法

 更新时间:2025年09月05日 09:08:29   作者:Python资讯站  
这篇文章主要为大家详细介绍了python使用pandas读取excel文件中数据的四种方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下

一、读取Excel文件

使用pandas的**read_excel()**方法,可通过文件路径直接读取。注意到,在一个excel文件中有多个sheet,因此,对excel文件的读取实际上是读取指定文件、并同时指定sheet下的数据。可以一次读取一个sheet,也可以一次读取多个sheet,同时读取多个sheet时后续操作可能不够方便,因此建议一次性只读取一个sheet。

当只读取一个sheet时,返回的是DataFrame类型,这是一种表格数据类型,它清晰地展示出了数据的表格型结构。具体写法为:

(1)不指定sheet参数,默认读取第一个sheet,

 df=pd.read_excel(“data_test.xlsx”)

(2)指定sheet名称读取,

 df=pd.read_excel(“data_test.xlsx”,sheet_name=“test1”)

(3)指定sheet索引号读取,

 df=pd.read_excel(“data_test.xlsx”,sheet_name=0) #sheet索引号从0开始

*同时读取多个sheet,以字典形式返回。(不推荐)

(1)指定多个sheet名称读取, df=pd.read_excel(“data_test.xlsx”,sheet_name=[“test1”,“test2”])

(2)指定多个sheet索引号读取,

df=pd.read_excel(“data_test.xlsx”,sheet_name=[0,1])

(3)混合指定sheet名称和sheet索引号读取,

df=pd.read_excel(“data_test.xlsx”,sheet_name=[0,“test2”])

二、DataFrame对象的结构

对内容的读取分有表头和无表头两种方式,默认情形下是有表头的方式,即将第一行元素自动置为表头标签,其余内容为数据;当在read_excel()方法中加上header=None参数时是不加表头的方式,即从第一行起,全部内容为数据。读取到的Excel数据均构造成并返回DataFrame表格类型(以下以df表示)。

对有表头的方式,读取时将自动地将第一行元素置为表头向量,同时为除表头外的各行内容加入行索引(从0开始)、各列内容加入列索引(从0开始)。如图所示

对无表头的方式,读取时将自动地为各行内容加入行索引(从0开始)、为各列内容加入列索引(从0开始),行索引从第一行开始。如图所示

三、用values方式获取数据

1.基本方法

df.values,获取全部数据,返回类型为ndarray(二维);

df.index.values,获取行索引向量,返回类型为ndarray(一维);

df.columns.values,获取列索引向量(对有表头的方式,是表头标签向量),返回类型为ndarray(一维)。

根据具体需要,通过ndarray的使用规则获取指定数据。数据获取的结构示意图如下所示。
有表头

无表头

2.获取指定数据的写法

(1)获取全部数据:

df.values,获取全部数据,返回类型为ndarray(二维)。

(2)获取某个值:

df.values[i , j],第i行第j列的值,返回类型依内容而定。

(3)获取某一行:

df.values[i],第i行数据,返回类型为ndarray(一维)。

(4)获取多行:

df.values[[i1 , i2 , i3]],第i1、i2、i3行数据,返回类型为ndarray(二维)。

(5)获取某一列:

df.values[: , j],第j列数据,返回类型为ndarray(一维)。

(6)获取多列:

df.values[:,[j1,j2,j3]],第j1、j2、j3列数据,返回类型为ndarray(二维)。

(7)获取切片:

df.values[i1:i2 , j1:j2],返回行号[i1,i2)、列号[j1,j2)左闭右开区间内的数据,返回类型为ndarray(二维)。

3.示例

带表头,excel内容为

Python脚本为

import pandas as pd

df = pd.read_excel("data_test.xlsx")

print("\n(1)全部数据:")
print(df.values)

print("\n(2)第2行第3列的值:")
print(df.values[1,2])

print("\n(3)第3行数据:")
print(df.values[2])

print("\n(4)获取第2、3行数据:")
print(df.values[[1,2]])

print("\n(5)第2列数据:")
print(df.values[:,1])

print("\n(6)第2、3列数据:")
print(df.values[:,[1,2]])

print("\n(7)第2至4行、第3至5列数据:")
print(df.values[1:4,2:5])

执行结果

四、用loc和iloc方式获取数据

1.基本写法

loc和iloc方法是通过索引定位的方式获取数据的,写法为loc[A, B]和iloc[A, B]。其中A表示对行的索引,B表示对列的索引,B可缺省。A、B可为列表或i1:i2(切片)的形式,表示多行或多列。

这两个方法的区别是,loc将参数当作标签处理,iloc将参数当作索引号处理。也就是说,在有表头的方式中,当列索引使用str标签时,只可用loc,当列索引使用索引号时,只可用iloc;在无表头的方式中,索引向量也是标签向量,loc和iloc均可使用;在切片中,loc是闭区间,iloc是半开区间。

获取指定数据的写法:

(1)获取全部数据:

df.loc[: , :].values

df.iloc[: , :].values,返回类型为ndarray(二维)。

(2)获取某个值:

无表头

df.loc[i, j]

df.iloc[i, j],第i行第j列的值,返回类型依内容而定。

有表头

df.loc[i, “序号”],第i行‘序号’列的值。

df.iloc[i, j],第i行第j列的值。

(3)获取某一行:

df.loc[i].values

df.iloc[i].values,第i行数据,返回类型为ndarray(一维)。

(4)获取多行:

df.loc[[i1, i2, i3]].values,

df.iloc[[i1, i2, i3]].values,第i1、i2、i3行数据,返回类型为ndarray(二维)。

(5)获取某一列:

无表头

df.loc[:, j].values

df.iloc[:, j].values,第j列数据,返回类型为ndarray(一维)。

有表头

df.loc[:,“姓名”].values,‘姓名’列数据,返回类型为ndarray(一维)。

df.iloc[:, j].values,第j列数据,返回类型为ndarray(一维)。

(6)获取多列:

无表头

df.loc[:, [j1 , j2]].values

df.iloc[:, [j1 , j2]].values,第j1、j2列数据,返回类型为ndarray(二维)。

有表头

  • df.loc[:, [“姓名”,“性别”]].values,‘姓名’、‘性别’列数据,返回类型为ndarray(二维);
  • df.iloc[:, [j1 , j2]].values,第j1、j2列数据,返回类型为ndarray(二维)。

(7)获取切片:

无表头

  • df.loc[i1:i2, j1:j2].values,返回行号[i1,i2]、列号[j1,j2]闭区间内的数据,返回类型为ndarray(二维);
  • df.iloc[i1:i2, j1:j2].values,返回行号[i1,i2)、列号[j1,j2)左闭右开区间内的数据,返回类型为ndarray(二维)。

有表头

  • df.loc[i1:i2, “序号”:“姓名”].values,返回行号[i1,i2]、列号[“序号”,“姓名”]闭区间的数据,返回类型为ndarray(二维);
  • df.iloc[i1:i2, j1:j2].values,返回行号[i1,i2)、列号[j1,j2)左闭右开区间内的数据,返回类型为ndarray(二维)。

2.示例

带表头,excel内容为

Python脚本为

import pandas as pd

df = pd.read_excel("data_test.xlsx")

print("\n(1)全部数据:")
print(df.iloc[:,:].values)

print("\n(2)第2行第3列的值:")
print(df.iloc[1,2])

print("\n(3)第3行数据:")
print(df.iloc[2].values)

print("\n(4)第2列数据:")
print(df.iloc[:,1].values)

print("\n(5)第6行的姓名:")
print(df.loc[5,"姓名"])

print("\n(6)第2至3行、第3至4列数据:")
print(df.iloc[1:3,2:4].values)

执行结果

到此这篇关于python使用pandas读取excel文件中数据的四种方法的文章就介绍到这了,更多相关pandas读取excel数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python HTML解析:BeautifulSoup,Lxml,XPath使用教程

    Python HTML解析:BeautifulSoup,Lxml,XPath使用教程

    文章介绍Python中HTML解析工具BeautifulSoup,lxml,XPath的使用,对比其优缺点,通过网页提取小工具示例展示数据抓取方法,并探讨结合智能技术提取摘要、关键词的可能及后续学习方向
    2025-06-06
  • Python Faker库基本用法详解

    Python Faker库基本用法详解

    Faker 是一个非常强大的库,适用于生成各种类型的伪随机数据,可以帮助开发者在测试、数据生成、或其他需要随机数据的场景中提高效率,本文给大家介绍Python Faker库基本用法详解,感兴趣的朋友一起看看吧
    2025-04-04
  • python求numpy中array按列非零元素的平均值案例

    python求numpy中array按列非零元素的平均值案例

    这篇文章主要介绍了python求numpy中array按列非零元素的平均值案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • python使用zip将list转为json的方法

    python使用zip将list转为json的方法

    今天小编就为大家分享一篇python使用zip将list转为json的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • python基础之循环语句

    python基础之循环语句

    这篇文章主要介绍了python的循环语句,实例分析了Python中返回一个返回值与多个返回值的方法,需要的朋友可以参考下
    2021-10-10
  • Pytest框架 conftest.py文件的使用详解

    Pytest框架 conftest.py文件的使用详解

    conftest.py是pytest特有的本地测试配置文件,既可以用来设置项目级别的fixture,也可以用来导入外部插件,本文给大家介绍Pytest框架 conftest.py文件的使用,感兴趣的朋友一起看看吧
    2022-06-06
  • VS code终端中python选择解释器(interpreter)报错解决方式

    VS code终端中python选择解释器(interpreter)报错解决方式

    VS Code是当前最受欢迎的代码编辑器之一,对Python开发的支持也非常友好,这篇文章主要介绍了VS code终端中python选择解释器(interpreter)报错解决方式,需要的朋友可以参考下
    2025-08-08
  • Python爬虫中urllib3与urllib的区别是什么

    Python爬虫中urllib3与urllib的区别是什么

    Urllib3是一个功能强大,条理清晰,用于HTTP客户端的Python库。那么Python爬虫中urllib3与urllib的区别是什么,本文就详细的来介绍一下
    2021-07-07
  • Django中更改默认数据库为mysql的方法示例

    Django中更改默认数据库为mysql的方法示例

    这篇文章主要介绍了Django中更改默认数据库为mysql的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • Python机器学习之Kmeans基础算法

    Python机器学习之Kmeans基础算法

    这篇文章主要介绍了Python机器学习之Kmeans基础算法,文中有非常详细的代码示例,对正在学习python的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-04-04

最新评论