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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/557464.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vmare17 安装不可启动的iso镜像系统

由于要测试一个软件,要安装一个Windows11_InsiderPreview_Client_x64_zh-cn_26058.iso 于是在虚拟机里捣鼓一下。但是这个iso好像不能直接启动 这样就无法直接安装了,怎么办呢,可以先用个pe系统引导进去,再在PE系统里安装这个iso…

XshellPlus V7.0.0033r 绿化便携版

Xshell,最好用的Linux远程连接工具,最强大的SSH终端管理器、SSH远程主机连接客户端 。Xshell,轻松管理远程服务器,会话管理器,支持多选项卡管理主机,支持远程协议Telnet、Rlogin、SSH/SSH PKCS#…

thinkphp 使用phpmailer发送邮件以及使用消息队列异步解耦发送邮件

邮箱注册配置&#xff1a; 注册163或qq邮箱&#xff0c;开启smtp服务 25端口 ssl则465端口 下载phpmailer composer 安装phpmailer composer require phpmailer/phpmailer设置配置文件 配置文件 书写代码 代码 <?php namespace app\job; use think\facade\Log; us…

前端静态开发案例-基于H5C3开发的仿照视频网站的前端静态页面-2 样式表部分和效果展示

原创作者&#xff1a;田超凡&#xff08;程序员田宝宝&#xff09; 版权所有&#xff0c;引用请注明原作者&#xff0c;严禁复制转载 charset "utf-8"; /* 程序员田宝宝原创版权所有&#xff0c;仿冒必究&#xff0c;该界面是仿照某视频网站官网开发的静态页面 */ …

QT界面制作

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);this->setWindowFlag(Qt::FramelessWindowHint);//接收动图QMovie *mv new QMovie(":/pictrue/th.gif…

MySQL之索引与事务

一 索引的概念 一种帮助系统查找信息的数据 数据库索引 是一个排序的列表&#xff0c;存储着索引值和这个值所对应的物理地址无须对整个表进行扫描&#xff0c;通过物理地 址就可以找到所需数据是表中一列或者若干列值排序的方法 需要额外的磁盘空间 索引的作用 1 数据库…

【C++】弥补C语言的不足(①命名冲突问题)

Hello&#xff0c;这里是关于C的入门&#xff0c;C的命名冲突问题&#xff0c;如果你像我一样对命名空间满是疑惑&#xff0c;只知道using namespace std,那么可以看下这篇文章&#xff0c;我自己之前的一些疑惑以及一些形象的理解。 命名冲突问题与命名空间 &#x1f33b;命名…

京东云开发者:DDD 学习与感悟 —— 向屎山冲锋

原文地址:https://mp.weixin.qq.com/s/Hvq1ttBopbxypatVcKcLiA 软件系统是通过软件开发来解决某一个业务领域或问题单元而产生的一个交付物。而通过软件设计可以帮助我们开发出更加健壮的软件系统。因此&#xff0c;软件设计是从业务领域到软件开发之间的桥梁。而DDD是软件设计…

按键模拟精灵

按键模拟精灵功能简单&#xff1a; 1.添加模拟按键 2.删除模拟按键 3.开始模拟 4.停止模拟 适合简单的按键操作&#xff0c;有需要的可以点赞收藏关注我&#xff01;

【JS】浅谈Promise

Promise 前言一、Promise是什么&#xff1f;二、为什么用Promise&#xff1f;2.1解决回调地狱2.2 集中错误处理2.3代码解耦和复用 三、做什么&#xff1f;四、原型方法和实例方法&#xff1f;五、应用场景&#xff1f; 前言 promise是es6的新规范&#xff0c;它是一种异步解决…

jmeter之常用函数-第六天

1.常见函数&#xff1a; _counter 计数器函数 TRUE(每个用户都有自己的计数器) FALSE(所有用户共用一个计数器) _Random 随机数函数 参数1:取值范围最小值(包含) 参数2:取值范围最大值(包含) _time 获取当前时间的函数 无参: 获取的是距离 1970/01/01 00:00:00 的毫秒值 参…

基于springboot的大学生租房平台系统

技术&#xff1a;springbootmysqlvue 一、系统背景 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播&#xff0c;搭配信息管理工具可以很好地为人们提供服务。针对大学生租房信息管理混乱…