用Python的pandas读取excel文件中的数据

2023-11-16

一、前言

hello呀!各位铁子们大家好呀,今天呢来和大家聊一聊用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"])
点我免费领取全套软件测试(自动化测试)视频资料(备注“知乎AAA”)

三、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)`
执行结果

 

最后: 为了回馈铁杆粉丝们,我给大家整理了完整的软件测试视频学习教程,朋友们如果需要可以自行免费领取 【保证100%免费】

在这里插入图片描述

全套资料获取方式:点击下方小卡片自行领取即可

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用Python的pandas读取excel文件中的数据 的相关文章

  • 使用特定的类/函数预加载 Jupyter Notebook

    我想预加载一个笔记本 其中包含我在另一个文件中定义的特定类 函数 更具体地说 我想用 python 来做到这一点 比如加载一个配置文件 包含所有相关的类 函数 目前 我正在使用 python 生成笔记本并在服务器上自动启动它们 因为不同的
  • 在 django ORM 中查询时如何将 char 转换为整数?

    最近开始使用 Django ORM 我想执行这个查询 select student id from students where student id like 97318 order by CAST student id as UNSIG
  • Excel工作簿关闭后反复打开

    我使用了 Application ontime 方法来调度一些宏 关闭工作簿后 它会一次又一次地打开 为了解决这个问题 我在工作簿上设置了另一个事件 BeforeClosed 现在它显示运行时错误 1004 Object Applicati
  • Python getstatusoutput 替换不返回完整输出

    我发现了这个很棒的替代品getstatusoutput Python 2 中的函数在 Unix 和 Windows 上同样有效 不过我觉得这个方法有问题output被构建 它只返回输出的最后一行 但我不明白为什么 任何帮助都是极好的 def
  • 删除flask中的一对一关系

    我目前正在使用 Flask 开发一个应用程序 并且在删除一对一关系中的项目时遇到了一个大问题 我的模型中有以下结构 class User db Model tablename user user id db Column db String
  • Pandas 日期时间格式

    是否可以用零后缀表示 pd to datetime 似乎零被删除了 print pd to datetime 2000 07 26 14 21 00 00000 format Y m d H M S f 结果是 2000 07 26 14
  • 使用 kivy textinput 的 'input_type' 属性的问题

    您好 我在使用 kivy 的文本输入小部件的 input type 属性时遇到问题 问题是我制作了两个自定义文本输入 其中一个称为 StrText 其中设置了 input type text 然后是第二个文本输入 名为 NumText 其
  • 将 python2.7 与 Emacs 24.3 和 python-mode.el 一起使用

    我是 Emacs 新手 我正在尝试设置我的 python 环境 到目前为止 我已经了解到在 python 缓冲区中使用 python mode el C c C c将当前缓冲区的内容加载到交互式 python shell 中 显然使用了什么
  • 使用字典映射数据帧索引

    为什么不df index map dict 工作就像df column name map dict 这是尝试使用index map的一个小例子 import pandas as pd df pd DataFrame one A 10 B 2
  • YOLOv8获取预测边界框

    我想将 OpenCV 与 YOLOv8 集成ultralytics 所以我想从模型预测中获取边界框坐标 我该怎么做呢 from ultralytics import YOLO import cv2 model YOLO yolov8n pt
  • 在Python中连接反斜杠

    我是 python 新手 所以如果这听起来很简单 请原谅我 我想加入一些变量来生成一条路径 像这样 AAAABBBBCCCC 2 2014 04 2014 04 01 csv Id TypeOfMachine year month year
  • 为什么 PyYAML 花费这么多时间来解析 YAML 文件?

    我正在解析一个大约 6500 行的 YAML 文件 格式如下 foo1 bar1 blah name john age 123 metadata whatever1 whatever whatever2 whatever stuff thi
  • Python beautifulsoup 仅限 1 级文本

    我看过其他 beautifulsoup 得到相同级别类型的问题 看来我的有点不同 这是网站 我正试图拿到右边那张桌子 请注意表的第一行如何展开为该数据的详细细分 我不想要那个数据 我只想要最顶层的数据 您还可以看到其他行也可以展开 但在本例
  • Cython 和类的构造函数

    我对 Cython 使用默认构造函数有疑问 我的 C 类 Node 如下 Node h class Node public Node std cerr lt lt calling no arg constructor lt lt std e
  • Python3 在 DirectX 游戏中移动鼠标

    我正在尝试构建一个在 DirectX 游戏中执行一些操作的脚本 除了移动鼠标之外 我一切都正常 是否有任何可用的模块可以移动鼠标 适用于 Windows python 3 Thanks I used pynput https pypi or
  • 如何断言 Unittest 上的可迭代对象不为空?

    向服务提交查询后 我会收到一本字典或一个列表 我想确保它不为空 我使用Python 2 7 我很惊讶没有任何assertEmpty方法为unittest TestCase类实例 现有的替代方案看起来并不正确 self assertTrue
  • 如何在 pygtk 中创建新信号

    我创建了一个 python 对象 但我想在它上面发送信号 我让它继承自 gobject GObject 但似乎没有任何方法可以在我的对象上创建新信号 您还可以在类定义中定义信号 class MyGObjectClass gobject GO
  • 如何解决 PDFBox 没有 unicode 映射错误?

    我有一个现有的 PDF 文件 我想使用 python 脚本将其转换为 Excel 文件 目前正在使用PDFBox 但是存在多个类似以下错误 org apache pdfbox pdmodel font PDType0Font toUnico
  • Django-tables2 列总计

    我正在尝试使用此总结列中的所有值文档 https github com bradleyayers django tables2 blob master docs pages column headers and footers rst 但页
  • 在 JavaScript 函数的 Django 模板中转义字符串参数

    我有一个 JavaScript 函数 它返回一组对象 return Func id name 例如 我在传递包含引号的字符串时遇到问题 Dr Seuss ABC BOOk 是无效语法 I tried name safe 但无济于事 有什么解

随机推荐

  • Spring Boot 单体应用一键升级成 Spring Cloud Alibaba

    背景 随着 Apache Dubbo Nacos 以及 Spring Cloud 等服务框架的流行 越来越多的企业开始采用微服务架构来构建其应用程序 微服务架构使企业能够将其应用程序拆分成多个小型服务 这些服务可以独立部署和扩展 这种架构模
  • 操作系统 --- 进程/线程 同步

    操作系统 进程 线程 同步 资源竞争 race condition 临界区 critical section 解决临界区问题 实现进程同步 进程同步的三个原则 互斥 mutual exclusive 有限等待 bounded waiting
  • Basic Level 1024 科学计数法 (20分)

    题目 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法 其满足正则表达式 1 9 0 9 E 0 9 即数字的整数部分只有 1 位 小数部分至少有 1 位 该数字及其指数部分的正负号即使对正数也必定明确给出 现以科学计数法的格式给
  • java agent技术原理及简单实现

    注 本文定义 在函数执行前后增加对应的逻辑的操作统称为MOCK 1 引子 在某天与QA同学进行沟通时 发现QA同学有针对某个方法调用时 有让该方法停止一段时间的需求 我对这部分的功能实现非常好奇 因此决定对原理进行一些深入的了解 力争找到一
  • 循环和数据的操作命令

    while循环的本质就是让计算机在满足某一条件的前提下去重复做同一件事情 即while循环为条件循环 包含 1 条件计数循环 2条件无限循环 1 1计数循环 count 0 while count lt 9 print the loop i
  • Vue前端框架

    一 简介 Vue是一个渐进式 真正用到才引用 的JavaScript框架与其它大型框架不同的是 Vue 被设计为可以自底向上逐层应用 Vue 的核心库只关注视图层 不仅易于上手 还便于与第三方库或既有项目整合 另一方面 与现代化的工具以及各
  • Android相机调用-CameraX【外接摄像头】【USB摄像头】

    Android相机调用有原生的Camera和Camera2 我觉得调用代码都太复杂了 CameraX调用代码简洁很多 说明文档 https developer android com jetpack androidx releases ca
  • 一文弄懂c/c++编译过程(预处理,编译,汇编,链接)

    目录 1 为什么要编译 2 编译过程 3 实验验证 1 为什么要编译 c语言是一门高级语言 需要编译器将其转换成计算机能理解的机器语言 才能在计算机上执行 编译的过程就是将c语言代码转换成汇编代码文件的过程 2 编译过程 程序从代码编译成可
  • 关于时间序列分析的协整检验、脉冲响应图、方差分解图和格兰杰因果检验

    1 关于时间序列中分的析过程 step1 单位根检验 一般来说 时间序列进行分析之前应该先检验是否存在单位根 如是 则需要进行差分转换 否则可以直接进行var vector autoregression 这里不讨论arma Autoregr
  • 【mysql】mysql启动关闭命令以及一些报错解决问题

    mysql启动关闭命令以及一些报错解决问题 1 利用cmd窗口启动mysql出现服务名无效 2 启动mysql出现发生系统错误 5 1 利用cmd窗口启动mysql出现服务名无效 利用net start mysql启动mysql报错 服务名
  • Vue如何实现权限管理

    一 权限管理 权限管理就是让不同的用户只能访问自己权限内的资源 有以下几种 路由权限 用户登录后只能看到自己权限内的导航菜单 且只能访问自己权限内的路由地址 视图权限 用户只能看到自己权限内的内容和按钮 请求权限 越权请求将其拦截 二 控制
  • 云原生之使用Docker部署h5ai文件展示页

    云原生之使用Docker部署h5ai文件展示页 一 h5ai介绍 二 检查本地docker服务 1 检查系统docker状态 2 检查docker版本 三 下载h5ai镜像 四 部署h5ai服务 1 创建数据挂载目录 2 创建h5ai容器
  • ajax中XMLHttpRequest对象详解

    ajax中XMLHttpRequest对象详解 ajax技术的核心或者说负责ajax进行同步或者异步服务器请求是XMLHttpRequest对象 在用使用ajax技术时 其实就是操作XMLHttpRequest进行相应的业务 方法 1创建X
  • Mybatis item 和 index 区别

    Mybatis item 和 index 区别 相信很多人多看过Mybatis官方文档 但是在文档中并没有详细的说明index 的详细讲解 这里废话不多说 直接上代码来分析它和item 的区别
  • vue项目运行报错:error ‘v-model‘ directives require no argument vue/valid-v-model

    在vue项目中 需要引用第三方库 比如vant 2 12 47 在使用Dialog弹出框组件 需要使用v model show来确定是否显示弹窗 在项目运行时 会报错 error v model directives require no
  • 游戏服务器显示异常什么意思,游戏服务器状态异常怎么解决办法

    游戏服务器状态异常怎么解决办法 内容精选 换一换 GAUSS 00701 cannot rename inherited constraint s SQLSTATE 42P16错误原因 修改继承的约束名 解决办法 禁止修改继承的约束名 GA
  • gaussdb mysql对比_GaussDB(for MySQL)

    GaussDB for MySQL 是华为自研的最新一代高性能企业级分布式数据库 完全兼容MySQL 基于华为最新一代DFV分布式存储 采用计算存储分离架构 最高支持128TB的海量存储 可实现超百万级QPS吞吐 支持跨AZ部署 数据0丢失
  • Macronix MX25L25645G NOR Flash无法擦除问题分析

    1 问题现象描述 处理器使用的 SAM9X60 使用的内核版本是 5 10 80 在调试 Macronix MX25L25645G NOR Flash时 发现flash驱动加载成功后 使用 mtd debug 工具 erase flash时
  • Python期末考试答案

    文章目录 一 选择题 和 的区别 列表的操作 字典 字符串 运算 类的继承 程序阅读题 二 判断题 三 简答题 在python中 递归函数的特性是什么 阐释python是什么样的一门编程语言及应用场景 阐述类的三大特性是什么 你是如何理解的
  • 用Python的pandas读取excel文件中的数据

    一 前言 hello呀 各位铁子们大家好呀 今天呢来和大家聊一聊用Python的pandas读取excel文件中的数据 二 读取Excel文件 使用pandas的read excel 方法 可通过文件路径直接读取 注意到 在一个excel文