Pandas知识点-索引和切片操作

索引和切片操作是最基本最常用的数据处理操作,Pandas中的索引和切片操作基于Python的语言特性,支持类似于numpy中的操作,也可以使用行标签、列标签以及行标签与列标签的组合来进行索引和切片操作。

本文使用的数据来源于网易财经,具体下载方式可以参考:https://blog.csdn.net/weixin_43790276/article/details/113923039。

前面介绍DataFrame和Series的文章中,代码是在Pycharm中编写的,本文和后面介绍Pandas的文章,代码会优先在Jupyter Notebook中编写。Jupyter Notebook的安装可以参考:https://blog.csdn.net/weixin_43790276/article/details/108927770。

一、数据读取

数据文件是600519.csv,将此文件放到代码同级目录下,从文件中读取出数据。

为了避免数据量太大,只取了前5行数据。查看读取的数据,列还是很多,为了让数据再精简一点,接下来将后面几列删除。默认的行索引是数值索引,为了方便后面演示索引操作,设置日期为索引。

处理后的数据如上图,这样看起来简洁了很多。

二、读取一列数据或一行数据

1. 读取一列数据

获取DataFrame中的一列数据有两种方式,第一种是用 data['列索引'] ,如 data['收盘价'] 可以获取收盘价这一列的数据。第二种是 data.列索引 的方式,如 data.收盘价 与 data['收盘价'] 的结果相同。

第一种方式是通用的方式,对于任意DataFrame都适用。第二种方式除了支持英文的索引名,也支持中文的索引名,但是如果英文的索引名与Python关键字(如class,list)同名,会报错,只能用第一种方式来取数据。

2. 读取一行数据

获取DataFrame中的一行数据时,不能直接用 data['行索引'] 或 data.行索引 的方式。

获取行数据也有两种方式,需要借助loc属性或iloc属性。loc属性基于行索引名获取数据,用法为 data.loc['行索引'] ,如 data.loc['2021-02-19'] 可以获取2021年2月19日的交易数据。iloc属性基于数值索引获取数据,用法为 data.iloc[数值] ,如 data.iloc[0] 是获取DataFrame中的第一行数据,与 data.loc['2021-02-19'] 结果相同。

三、读取指定位置的数据

Pandas中获取指定位置数据的索引方式默认是“先列后行”,这与numpy中ndarray的索引方式“先行后列”是相反的。在Pandas中,取数据的逻辑通常是先获取某一列数据,然后再取这列数据中的某个数据,所以默认采用了“先列后行”的方式,如果顺序反了会报错。

除了用“先列后行”的方式获取数据,如果想用“先行后列”的方式获取数据,可以借助loc属性或iloc属性来实现。loc属性是基于索引名来获取数据的,在loc中的行索引和列索引都要使用索引名,iloc属性是基于数值索引来获取数据的,在iloc中的行索引和列索引都要使用数值索引。同时,loc属性和iloc属性都只支持“先行后列”,顺序不能反。

四、DataFrame的索引转换

在使用loc属性和iloc属性时,行索引和列索引必须同时为索引名或同时为数值索引,所以,经常需要对索引名和数值索引互相转换。

使用DataFrame的index属性和columns属性可以得到行索引和列索引,在后面传入对应的数值就可以将数值索引转换成索引名。链式调用index属性和columns属性的get_indexer()方法,就可以将索引名转换成数值索引,get_indexer()中传入需要转换的索引名列表,即使只转换一个索引名,也要用列表的方式传入。

如果需要同时转换多个索引名,可以在列表中添加,列表中的顺序可以不遵守index和columns的先后顺序,返回结果是一一对应的数值索引数组。

五、切片

DataFrame的切片操作也要使用loc属性和iloc属性,不能直接用 data[:][:] 或 data[:, :] 的方式。loc中传入需要切片的行索引和列索引的索引名,iloc中传入需要切片的行索引和列索引的数值索引范围。

使用iloc进行切片操作时,切片规则与Python基本的切片规则相同,传入的切片索引是左闭右开的(包含起始值,不包含结束值)。

上面的索引互相转换方法,可以灵活地在切片中使用,在使用loc时将数值索引转换成索引名,在使用iloc时将索引名转换成数值索引。

以上就是Pandas中的索引和切片基本操作介绍,如果需要获取数据和代码,可以扫码关注公众号“Python碎片”,然后在后台回复“pandas03”关键字获取本文代码和数据。

Pandas知识点-索引和切片操作相关推荐

  1. 【TensorFlow2.0】(3) 索引与切片操作

    各位同学好,今天我和大家分享一下TensorFlow2.0中索引与切片.内容有: (1) 给定每一维度的索引来获取数据:(2) 切片索引:(3) 省略号应用:(4) tf.gather() 方法:(5 ...

  2. Pandas时间索引的骚操作

    当DataFrame的索引为时间对象时,可以很方便的进行数据的筛选. 时间范围生成 #生成时间范围 pd.date_range('2010-01-01','2010-01-08') >>& ...

  3. 数据分析工具Pandas(2):Pandas的索引操作

    数据分析工具Pandas(1):Pandas的数据结构 数据分析工具Pandas(2):Pandas的索引操作 Pandas的索引操作 索引对象Index 1. Series和DataFrame中的索 ...

  4. dataframe两个表合并_Part25:Pandas基础(Series,DataFrame类的创建、索引、切片、算术方法)...

    一.为什么学习pandas numpy已经可以帮助我们进行数据的处理了,那么学习pandas的目的是什么呢? numpy能够帮助我们处理的是数值型的数据,当然在数据分析中除了数值型的数据还有好多其他类 ...

  5. pandas分层索引(层级索引、MultiIndex)的创建、取值、切片、统计计算以及普通索引和层级索引的转换方法

    pandas分层索引(层级索引.MultiIndex)的创建.取值.切片.统计计算以及普通索引和层级索引的转换方法 @TOC 多层索引的Series 层级索引的创建 层级索引(multi index) ...

  6. c++没有终结符的多行输入如何停止_如何使用iloc和loc 对Pandas Dataframe进行索引和切片...

    在这篇文章中,我们将使用iloc和loc来处理数据.更具体地说,我们将通过iloc和loc例子来学习切片和索引. 一旦我们将一个数据集加载为Pandas dataframe,我们通常希望根据某些条件开 ...

  7. dataframe iloc_如何使用iloc和loc 对Pandas Dataframe进行索引和切片

    在这篇文章中,我们将使用iloc和loc来处理数据.更具体地说,我们将通过iloc和loc例子来学习切片和索引. 一旦我们将一个数据集加载为Pandas dataframe,我们通常希望根据某些条件开 ...

  8. Pandas知识点-添加操作append

    Pandas知识点-添加操作append 在Pandas中,append()方法用于将一个或多个DataFrame或Series添加到DataFrame中.append()方法也可以用于合并操作,本文 ...

  9. Pandas知识点-合并操作combine

    Pandas知识点-合并操作combine combine是联合的意思,在Pandas中,combine()方法也是一种实现合并的方法,本文介绍combine()方法的用法. 一.combine_fi ...

最新文章

  1. gcc8之前,coredump文件无法显示正确的函数调用栈信息
  2. Git clone时出现Please make sure you have the correct access rights and the repository exists.问题已解决。
  3. 34.对象 GC,GC属性,影响GC的因素,GC步骤,GC算法,安全区/安全区域,新生代,老年代等介绍
  4. python3安装pymysql_Python3 MySQL 数据库连接 - PyMySQL 驱动
  5. GitHub标星3.6k | 给AI一张高清照片,分分钟还你3D人体模型
  6. apache正向代理配置
  7. Oracle认证体系的重大变化,你需要知道这些...
  8. 用Unity的Animation播放Animator动画Clip
  9. RabbitMQ基础进阶教程
  10. CVPR学习(一):CVPR2019-人脸方向
  11. java密码验证代码_java用户名密码验证示例代码分享
  12. jupyter notebook使用基础及其快捷键,包括对文档操作、cell操作、快捷键、markdown
  13. 互联网公司裁员还有秘密?我知道了!
  14. LA 3708 - Graveyard 墓地雕塑
  15. 卷积神经网络 svm分类器_使用卷积神经网络的狗品种分类器
  16. python分行输入_python换行输入
  17. 第十七章 Caché 定义和使用类查询
  18. 智能手机是通用计算机吗,手机电脑通用 你可能需要一款无线硬盘
  19. 矩阵键盘简易计算机设计报告,矩阵键盘设计实验报告.doc
  20. PMBOK第七版免费下载

热门文章

  1. Apache Kudu 加速对频繁更新数据的分析
  2. linux命令返回值的妙用
  3. Bzoj4822 [Cqoi2017]老C的任务
  4. elasticsearch Java API 之Delete By Query API
  5. 自定义UISwitch
  6. ext/iconv/.libs/iconv.o: In function `_php_iconv_strlen'
  7. 面试官系统精讲Java源码及大厂真题 - 37 ThreadPoolExecutor 源码解析
  8. mariadb 创建用户及授权
  9. oracle自定义存储过程:删除表(无论表是否存在)和检测表是否存在
  10. C#算法设计排序篇之02-快速排序(附带动画演示程序)