Python_AI库 Pandas的loc和iloc的区别与使用实例

embedded/2024/10/9 15:24:39/

Python中Pandas的lociloc的区别与使用实例

在这里插入图片描述

在Pandas中,lociloc是两个常用的方法,用于基于标签(label)和整数位置(integer location)来选择数据。尽管两者在功能上有重叠,但它们在用法和性能上有所不同。下面将详细解释它们之间的区别,并通过实例来演示它们的使用。

loc vs iloc

  • loc:基于标签进行选择。它使用行标签和列标签来选择数据。对于DataFrame,这些标签通常是列名和行索引。
  • iloc:基于整数位置进行选择。它使用基于0的索引来选择数据,忽略行标签和列标签的实际值。

使用实例

假设我们有一个如下的DataFrame:

python">import pandas as pddata = {'A': [1, 2, 3, 4],'B': [5, 6, 7, 8],'C': [9, 10, 11, 12],'D': [13, 14, 15, 16]
}df = pd.DataFrame(data, index=['row1', 'row2', 'row3', 'row4'])
print(df)

输出:

      A  B   C   D
row1  1  5   9  13
row2  2  6  10  14
row3  3  7  11  15
row4  4  8  12  16
使用loc
  1. 选择索引为’row2’的行:
python">print(df.loc['row2'])

输出:

A     2
B     6
C    10
D    14
Name: row2, dtype: int64
  1. 选择列’A’和’C’:
python">print(df.loc[:, ['A', 'C']])

输出:

      A   C
row1  1   9
row2  2  10
row3  3  11
row4  4  12
使用iloc
  1. 选择第二行(基于0的索引):
python">print(df.iloc[1])

输出:

A     2
B     6
C    10
D    14
Name: row2, dtype: int64

注意,尽管这里我们选择了索引为1的行,但输出的行标签仍然是’row2’,因为iloc是基于整数位置选择的,而不是基于标签。

  1. 选择前两列:
python">print(df.iloc[:, :2])

输出:

      A  B
row1  1  5
row2  2  6
row3  3  7
row4  4  8

注意事项

  • 当DataFrame的索引是整数时,使用loc可能会产生混淆,因为此时标签和位置可能会重叠。在这种情况下,使用iloc会更清晰。
  • loc通常比iloc更快,因为loc使用标签进行选择,这通常是一个哈希操作,而iloc可能需要额外的步骤来将整数位置映射到实际的标签。
  • 在某些情况下,使用lociloc的组合可以实现更复杂的选择逻辑。

http://www.ppmy.cn/embedded/39824.html

相关文章

【ARM 嵌入式 C 字符串系列 23.9 -- strcmp 与 strncmp 在使用上的区别以及注意事项】

请阅读【嵌入式开发学习必备专栏】 文章目录 strcmp 与 strncmp 使用介绍strcmpstrncmp使用建议 strcmp 与 strncmp 使用介绍 strcmp 和 strncmp 都是 C 语言标准库中用于比较两个字符串的函数&#xff0c;它们定义在 <string.h> 头文件中。这两个函数在功能上相似&…

Rancher-Kubewarden-保姆级教学-含Demo测试

一、什么是Kubewarden&#xff1f; What is Kubewarden? | Kubewarden 1、就是容器集群的准入策略引擎。 1、使用的策略其实就是k8s原生的security context. 2、使用WebAssembly来编写策略。 1、WebAssembly&#xff0c;可以使用擅长的开发语言来编写策略。&#xff08;下面的…

Leedcode题目:移除链表元素

题目&#xff1a; 这个题目就是要我们将我们的链表中的值是val的节点删除。 我们题目提供的接口是 传入了指向一个链表的第一个节点的指针&#xff0c;和我们要删除的元素的值val&#xff0c;不只要删除第一个&#xff0c; 思路 我们这里可以创建一个新的链表&#xff0c;…

模拟集成电路(3)----单级放大器(共源极)

模拟集成电路(3)----单级放大器&#xff08;共源极&#xff09; 放大是模拟电路的基本功能 大多数自然模拟信号太小而无法处理需要足够的信噪比 理想的放大器 线性&#xff1a;无限的幅度和频率范围 输入阻抗无限大 输出阻抗无限小 共源放大器 共源放大器就是将源极接A…

Golang 开发实战day14 - Reciver Functions with Pointers

&#x1f3c6;个人专栏 &#x1f93a; leetcode &#x1f9d7; Leetcode Prime &#x1f3c7; Golang20天教程 &#x1f6b4;‍♂️ Java问题收集园地 &#x1f334; 成长感悟 欢迎大家观看&#xff0c;不执着于追求顶峰&#xff0c;只享受探索过程 Golang 开发实战day14 - 接收…

Selenium的自动化测试技巧有多少?【建议收藏】

Selenium是一个用于自动化Web应用程序测试的工具。它提供了一组API&#xff0c;允许用户与Web浏览器进行交互&#xff0c;来执行各种自动化测试任务。本文将从零开始&#xff0c;详细介绍Selenium的自动化测试技巧。 第一步&#xff1a;安装Selenium 首先&#xff0c;您需要安…

巨坑啊! before-upload返回false 会执行on-remove

通过对on-remove对应参数的打印&#xff0c;发现回调中的file参数有个status&#xff0c;若是是在before-upload中就被过滤了&#xff0c;就是ready&#xff0c;若是已经上传成功了去点击删除&#xff0c;status是success&#xff0c;就他了。 onRemove(file,fileList){if(file…

嘎嘎好用的虚拟键盘第二弹之中文输入法

之前还在为不用研究输入中文而暗自窃喜 这不新需求就来了&#xff08;新需求不会迟到 它只是在路上飞一会儿&#xff09; 找到了个博主分享的代码 是好使的 前端-xyq 已经和原作者申请转载了 感谢~~ 原作者地址&#xff1a;https://www.cnblogs.com/linjiangxian/p/16223681.h…