一、读取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)`

执行结果





End.

用python的pandas读取excel文件中的数据的更多相关文章

  1. Python笔记(读取txt文件中的数据)

    在机器学习中,常常需要读取txt文本中的数据,这里主要整理了两种读取数据的方式 数据内容 共有四列数据,前三列为特征值,最后一列为数据标签 40920 8.326976 0.953952 3 1448 ...

  2. matlab读取excel文件中的数据

    1.读取sheet1中的所有数据 1.1首先我们建立一个sheet表,表名为‘111’ 1.2 默认这些文本以及数字都放在sheet1中,我们将此excel选入当前工作目录(必要步骤), 选入当前工作 ...

  3. Python xlrd模块读取Excel表中的数据

    1.xlrd库的安装 直接使用pip工具进行安装(当然也可以使用pycharmIDE进行安装,这里就不详述了) pip install xlrd 2.xlrd模块的一些常用命令 ①打开excel文件并 ...

  4. gridview读取Excel文件中的数据,并将其导入数据库

    原文发布时间为:2008-10-16 -- 来源于本人的百度文章 [由搬家工具导入] //将需要导入的文件上传到服务器           string filePath = "" ...

  5. [Python]将Excel文件中的数据导入MySQL

    Github Link 需求 现有2000+文件夹,每个文件夹下有若干excel文件,现在要将这些excel文件中的数据导入mysql. 每个excel文件的第一行是无效数据. 除了excel文件中已 ...

  6. 用Python的pandas框架操作Excel文件中的数据教程

    用Python的pandas框架操作Excel文件中的数据教程 本文的目的,是向您展示如何使用pandas 来执行一些常见的Excel任务.有些例子比较琐碎,但我觉得展示这些简单的东西与那些你可以在其 ...

  7. 读取Excel文件中的单元格的内容和颜色

    怎样读取Excel文件中的单元格的内容和颜色 先创建一个Excel文件,在A1和A2中随意输入内容,设置A1的字体颜色为红色,A2的背景为黄色.需要 using Excel = Microsoft.O ...

  8. Java读取、写入、处理Excel文件中的数据(转载)

    原文链接 在日常工作中,我们常常会进行文件读写操作,除去我们最常用的纯文本文件读写,更多时候我们需要对Excel中的数据进行读取操作,本文将介绍Excel读写的常用方法,希望对大家学习Java读写Ex ...

  9. 利用java反射机制实现读取excel表格中的数据

    如果直接把excel表格中的数据导入数据库,首先应该将excel中的数据读取出来. 为了实现代码重用,所以使用了Object,而最终的结果是要获取一个list如List<User>.Lis ...

随机推荐

  1. RHCE_DAY06

    iptables防火墙 ----匹配及停止 nerfilter/iptables:工作在主机或网络的边缘,对于进出本主机或网络的报文根据事先定义好的检查规则作匹配检测,对于能够被规则所匹配到的报文做出 ...

  2. ant的copy标签使用方法

    对于ant里拷贝用的标签的用法,此文(来自 http://electiger.blog.51cto.com/112940/39575 )讲得很好,注意其中黑体字部分,今天被这个问题耽误了20分钟. A ...

  3. Spring Boot自动配置原理与实践(二)

    前言 在之前的博文(Spring Boot自动配置原理与实践(一))中,已经介绍了Spring boot的自动配置的相关原理与概念,本篇主要是对自动配置的实践,即自定义Starter,对原理与概念加深 ...

  4. Pikachu-Unsafe Fileupload模块

    一.概述 文件上传功能在web应用系统很常见,比如很多网站注册的时候需要上传头像.上传附件等等.当用户点击上传按钮后,后台会对上传的文件进行判断 比如是否是指定的类型.后缀名.大小等等,然后将其按照设 ...

  5. hdmi 随笔

    从图片来看,每张图片开始传输的是45像素的垂直同步, 1.控制数据贯穿所有时间,没个不是控制数据的传输都被控制数据包围.控制数据还要通过控制位指示,下一个数据是数据岛还是视频信号. 2.terc4 全 ...

  6. SQL 练习3

    查询存在" 01 "课程,可能不存在" 02 "课程的情况(不存在时显示为 null ) SELECT * FROM (SELECT * FROM SC WHE ...

  7. SpringCloud升级之路2020.0.x版-20. 启动一个 Eureka Server 集群

    本系列代码地址:https://github.com/HashZhang/spring-cloud-scaffold/tree/master/spring-cloud-iiford 我们的业务集群结构 ...

  8. RabbitMQ 安装与配置管理

    rabbitmq安装 1. 安装erlang yum install erlang xmlto 2. 安装rabbitmq rpm包 #wget http://www.rabbitmq.com/rel ...

  9. wpf实现轮播效果

    在web上面轮播非常常见 WPF中似乎要自己搞,那么我依葫芦画瓢搞一个 如下,平时按一定的时间轮播,点击右下角的灰色圆点(不是很明显0.0),则切换到对应图片  先放 源码:https://gitee ...

  10. WPF 自己做一个颜色选择器

    程序开发过程中,经常会遇到需要支持动态配置主题颜色的问题,通常,一个程序会有多种不同的颜色风格主题供选 有时候,更细致一些的地方,会需要支持自己配置颜色,这样我们就需要一个颜色选择器啦,下面是我自己开 ...