Pandas:DataFrame loc 与 iloc 两者“索引”区别

DataFrame loc 与 iloc 两者”索引”区别

*
问题导入
DataFrame.loc
DataFrame.iloc
对比举例

+ DataFrame.iloc实现
+
* DataFrame.columns.get_indexer()
+ DataFrame.loc实现
+
* DataFrame.index
总结

首先声明本人为小白,只是为了 方便记录自己的学习过程并且监督自己所写的专栏,有什么问题欢迎各位大佬在评论区指正或者讨论。另外,需要引用请注明出处(虽然不是完全原创但是也是自己辛辛苦苦查资料写的啊QAQ),谢谢。

问题导入

遇到这个问题是在iloc中用索引希望获取相应数据时出现了报错:

Pandas:DataFrame loc 与 iloc 两者“索引”区别
可能以前在学到loc和iloc的时候没有注意到(之前也没有太在意索引和单纯数字顺序的区别),且以前用DataFrame时,几乎都是直接重新生成索引,所以索引和顺序是一样的,没有察觉有问题。

下面开始探讨这个问题:
贴张Pandas官网截图:
(https://pandas.pydata.org/docs/reference/frame.html 在Indexing, iteration部分即可看到 )

Pandas:DataFrame loc 与 iloc 两者“索引”区别
可以看到对于loc的描述是:通过标签或者一个布尔数组来得到一些行和列;iloc则是:单纯基于整数位置的索引,用于按位置选择。

; DataFrame.loc

前面所述的标签就是Index(即用DataFrame.index可以得到的行便签(The index (row labels) of the DataFrame.))和column(用DataFrame.columns可以得到)。

DataFrame.iloc

前面所述的整数位置就像数数字一样的从0开始按顺序给每一行和每一列都标明了位置,按照这个位置来进行选择。

对比举例

下面以一个很简单明了的例子来说明:
首先创建一个DataFrame:

Pandas:DataFrame loc 与 iloc 两者“索引”区别
设置index为5,6(可以在列边看到),列名为a,b,c(可以行上看到)

假设想要得到2,3这两个数字,那用两个方法需要怎么做呢?

; DataFrame.iloc实现

Pandas:DataFrame loc 与 iloc 两者“索引”区别
2,3在第0行,第1,2列,所以用iloc实现如上。

DataFrame.columns.get_indexer()

这里提一下这个方法,这个方法可以在列名很多不方便的时候,通过列名得到位置。
比如上面语句就可修改成:

Pandas:DataFrame loc 与 iloc 两者“索引”区别

; DataFrame.loc实现

Pandas:DataFrame loc 与 iloc 两者“索引”区别

2,3所在行索引(index)为5,列名为’b’,’c’

DataFrame.index

这里提一下这个属性,如果已知目标所在数字顺序要通过loc实现就可以用DataFrame.index[数字顺序]来实现。
比如上述语句可以修改成:

Pandas:DataFrame loc 与 iloc 两者“索引”区别

; 总结

位于这两个方法前面位置的参数,区别在于是index还是单纯的数字顺序。并且通过一些方法或属性,可以在一些情况下已知某种而得到另一种。

Original: https://blog.csdn.net/weixin_48266461/article/details/114339960
Author: Lotus莲
Title: Pandas:DataFrame loc 与 iloc 两者“索引”区别

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/741154/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 手把手带你入门 API 开发

    引言 在本文中,您将学习如何使用Flask、SQLite 3(轻易数据库)和 JSON 创建用于数据通信的 REST API。 本文使用 4 个最常用的 HTTP 动词:GET、P…

    Python 2023年8月9日
    077
  • Windows下_findnext()异常问题

    _findnext()在调试时会出现异常现象,第一个参数”路径句柄”,返回的类型为intptr_t(long long),要改为long long或者int…

    Python 2023年6月3日
    076
  • 城市机会清单中处处是机遇——实现pdf转excel

    项目是做不完的,生活处处是项目 规划项目化,项目清单化成都市政府官网城市机会清单发布厅 下载成都市官网城市机会清单发布大厅的清单,将之转换成excel,后续有时间实现多份清单的关键…

    Python 2023年8月8日
    051
  • 浏览器发送URL完整流程

    一、解析URL 首先浏览器做的第一步工作就是要对 URL 进行解析,从而生成发送给 Web 服务器的请求信息。一条长长的 URL 里的各个元素的代表什么,见下图: 所以图中的长长的…

    Python 2023年6月11日
    063
  • Mysql常用运维命令

    1.创建用户,使之管理数据库 grant all (privileges) on *.* to root@localhost identified by ‘123456’; 说明:…

    Python 2023年6月10日
    066
  • fit parse解析佳明.fit 运动数据,模仿zwift数据展示

    fitparse是一个用于解析 Garmin .FIT 文件的Python库。 本文中主要用到fitparse库来解析、提取数据;maplotlib库用来进行可视化绘制。 定义ge…

    Python 2023年9月6日
    0158
  • 深刻理解JAVA并发中的有序性问题和解决之道

    问题 Java并发情况下总是会遇到各种意向不到的问题,比如下面的代码: int num = 0; boolean ready = false; // 线&am…

    Python 2023年10月13日
    058
  • ChatGPT评测

    总结:ChatGPT很强大,用作学术方面的问答或者软件行业的辅助工具是有一定的作用,但是有些回答设置了限制,并且中文回答方面总是回答一半,需要一直让他继续说,篇幅不是很长,但是往往…

    Python 2023年11月3日
    046
  • pytest系列——assert断言

    迅捷小莫 本公众号日常更新自动化技术,编程知识,迅捷掌握一切测试工程师需要的技术! 12篇原创内容 公众号 Pytest 自动化测试中 ,有一个很重要的概念——断言。那什么是断言呢…

    Python 2023年9月10日
    044
  • python基础

    1.数字类型(int float bool complex) 小结: 二进制1+1=10八进制7+1=10十六进制f+1=10 浮点型简单来说就是表示带有小数的数据,而恰恰小数点可…

    Python 2023年11月10日
    082
  • Python 归并排序法

    归并排序法:是采用分治法的一个非常典型的应用。 分治法: 分割:递归地把当前序列平均分割成两半。 集成:在保持元素顺序的同时将上一步得到的子序列集成到一起(归并)。 #归并排序法 …

    Python 2023年5月25日
    088
  • 【django入门】 05 ORM连接mySQL,调整表结构

    【django入门】 05 ORM连接mySQL,调整表结构 ORM —— Object Relational Mapping 对象关系映射利用ORM写SQL语句,换句话说,用另一…

    Python 2023年6月15日
    088
  • 图像灰度化处理

    文章目录 1. 图像灰度化 2. 图像灰度化处理方法 * 2.1 最大值法 2.2 平均值法 2.3 加权平均法 3. 图像灰度化处理方法的Python实现 * 3.1 最大值法 …

    Python 2023年8月2日
    067
  • 【YOLOv5】LabVIEW+YOLOv5快速实现实时物体识别(Object Detection)含源码

    前面我们给大家介绍了基于LabVIEW+YOLOv3/YOLOv4的物体识别(对象检测),今天接着上次的内容再来看看YOLOv5。本次主要是和大家分享使用LabVIEW快速实现yo…

    Python 2023年10月25日
    035
  • Python调用Prometheus监控数据并计算

    Prometheus是什么 Prometheus是一套开源监控系统和告警为一体,由go语言(golang)开发,是监控+报警+时间序列数据库的组合。适合监控docker容器。因为k…

    Python 2023年5月24日
    067
  • 2、Python量化交易-三剑客之pandas

    ### 回答1: Python_是一种功能强大的编程语言,可以用于各种 _数据分析_任务。而在 _Python_的 _数据分析_工具库中, _pandas_是最受欢迎和广泛使用的工…

    Python 2023年8月8日
    051
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球