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

2023-11-12

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”关键字获取本文代码和数据。

 

 

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

Pandas知识点-索引和切片操作 的相关文章

  • day21网络编程(下)

    day21 网络编程 下 课程目标 学会网络编程开发的必备知识点 今日概要 OSI7 层模型 TCP和UDP 粘包 阻塞和非阻塞 IO多路复用 1 OSI 7层模型 OSI的7层模型对于大家来说可能不太好理解 所以我们通过一个案例来讲解 假
  • 安装【sonar】【sonarQube】免费社区版9.9

    文章目录 sonarQube 镜像容器 Linux 安装镜像 出现 Permission denied的异常 安装sonarQube 中文包 重启服务 代码上传到sonarQube扫描 java语言配置 配置 JS TS Php Go Py
  • gitee项目克隆到本地并运行

    首先电脑上要先安装node js和git 配置一下 在gitee上找到需要克隆到本地的项目 点击克隆 下载 在点击HTTPS下面的复制 github上也是类似的方式 把项目地址复制下来 在本机电脑 新建一个文件夹 命名任意 打开新建的文件夹
  • 神经元模型介绍

    一 深度学习的背景 目前 深度学习 Deep Learning 简称DL 在算法领域可谓是大红大紫 深度学习是机器学习领域中的一个新的研究方向 模仿生人类神经网络 学习样本数据的内在规律的一种方法 神经网络属于监督学习的过程 可以处理 回归
  • SQL 语句学习总结:

    1 四范式 范式好处 数据库范式是数据表设计的规范 在范式规范下 数据库里每个表存储的重复数据降到最少 这有助于数据的一致性维护 同时在数据库范式下 表和表之间不再有很强的数据耦合 可以独立的增长 ie 比如汽车引擎的增长和汽车的增长是完全

随机推荐

  • 接口响应时间长,前端返回请求超时解决

    在前端代码设置axios响应时间 1 全局设置 axios defaults timeout 时间 单位为毫秒 或 2 封装的http请求 const service axios create 公共接口 这里注意后面会讲 baseURL p
  • 解决Flutter输入框限制最大输入长度时,从中间输入会自动截取掉后面的内容

    一 问题原由 当限制输入框最大输入长度时 将光标移动到中间输入 当输入的内容长度加上已经输入内容的长度大于限制的输入长度时 Flutter会将光标后面的内容进行截取掉 而当我在原生Android上验证时却是自动截取输入的内容原有的内容不动
  • 输出数组中最大、小值和下标

    详细看代码 package exp 4 public class Array01 public static void main String args int arrs 1 2 2 12 7 5 声明数组并赋值 int max arrs
  • Python实现目录文件扫描功能

    日常程序编写中常常遇到需要获取目录下文件的功能 对该功能做个简单整理 供大家参考 实现遍历目录文件最常用的方法是os listdir 还有一种os walk方法 一 os listdir方法 源码中对该方法的描述 Return a list
  • 史上最详细黑盒测试用例方法总结(等价类、边界值、因果图等)

    黑盒测试用例设计方法 一 等价类 等价类划分法原理 1 把程序的输入域划分成若干部分 然后从每个部分中选取少数代表性数据作为测试用例 2 每一类的代表性数据在测试中的作用等价于这一类中的其他值 如果某一类中的一个例子发现了错误 这一等价类中
  • Flutter FutureBuilder

    FutureBuilder 是 Flutter 中的一个小部件 用于根据 Future 的结果构建用户界面 它接受一个 Future 对象和一个构建函数作为参数 FutureBuilder 将监听 Future 对象的变化 并相应地更新用户
  • useCallback 作用,useMemo ,memo作用 浅显理解

    项目中看到别人代码基本上每个函数都写了useCallback 于是去查了查到底有什么作用 快看睡着了还是没太明白 直接同事请教了一下 大概浅显的理解一点 useCallback 简单来说就是返回一个函数 只有在依赖项发生变化的时候才会更新
  • Vue 点击导航栏滑动到指定位置

    效果图 assignBlock gif 方法1
  • 前后端分离接口

    前后端分离接口的意义 目前现有前后端开发模式 后端为主的MVC时代 如下图所示 代码可维护性得到明显好转 MVC 是个非常好的协作模式 从架构层面让开发者懂得什么代码应该写在什么地方 为了让 View 层更简单干脆 还可以选择 Veloci
  • 现代密码学期末总结

    文章目录 写在前面 1 引言 知识点 习题 2 流密码 知识点 习题 3 分组密码 知识点 习题 4 公钥密码 知识点 习题 5 数字签名 知识点 习题 6 哈希函数 知识点 7 认证技术 知识点 8 密钥分配与密钥管理 知识点 习题 9
  • 大数据:对大数据的理解

    学了这么久大数据 学了好多主流大数据框架 从来没有主观意义上去深度地思考过大数据 现在对于大数据我讲讲自己的想法 1 大数据的产生 为什么会有大数据 随着互联网的发展 现在大部分日常生活都通过网络变得十分便捷 吃穿住行等等的日常生活都离不开
  • 【三十九、MySql】进阶篇--存储过程--循环(while、repeat、loop)

    1 while循环 语法 先判定循环是有条件的循环控制语句 满足条件后 再执行循环体中的sql语句 while 条件 do sql语句 end while 练习 传入一个参数n 计算1 2 3 n的值 create procedure p5
  • 卸载centos自带jdk&安装指定版本jdk

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 删除jdk 1 查看java安装情况 2 查看 3 卸载 4 rpm总结 5 安装 1 查看java安装情况 java version 2 查看 rpm qa grep jd
  • js实现贪吃蛇小游戏

  • 2023年电子设计大赛E题——省一设计报告

    2023 年全国大学生电子设计竞赛 运动目标控制与自动追踪系统 E 题 本科组 设计报告 目录 一 系统方案 4 一 主控模块的论证与选择 4 1 方案一 4 2 方案二 5 3 总结 5 二 巡线模块的论证与选择 5 1 方案一 5 2
  • 大数据工程师面试经验

    全中国的IT公司只想去阿里 因为阿里真的是中国程序员的朝圣地 进去真的能学很多 最终经历了5轮面试 顺利拿到了offer 这里和大家分享一下我的面试经验 一面过程 首先是一次不记名面试 这里我也真的很感谢这场不记名面试了 如果没有这场不记名
  • C++类的拷贝(复制)构造函数深入理解

    目录 一 拷贝构造函数的基本了解和使用 二 拷贝构造函数的一些注意事项 三 拷贝构造函数的调用时机 使用一个对象 直接构造 显式构造 或 初始化 隐式构造 另一个同类对象 关于拷贝构造函数与赋值函数的区别与联系 作为函数的形式参数时 作为函
  • 路由器网口1一直闪烁正常吗_路由器灯怎么闪才正常

    在我们日常生活当中 很多人家里都会安装各种各样的路由器 有的人家中安装的路由器是穿墙路由器 无论是安装的哪种路由器都有可能出现一些故障 今天小编就来跟大家说一说路由器灯怎么闪才正常 希望可以给大家带来帮助 感兴趣的朋友们可以跟随小编一起来了
  • vue3+ts动态写后台管理系统左边的菜单栏

    1 在路由router文件里面写路由元信息传递左侧显示的路由 以及路由的名字 const routes Array
  • Pandas知识点-索引和切片操作

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