Python Pandas中loc与iloc索引函数的核心区别解析
本文深入解析Python Pandas库中loc和iloc两个核心索引函数的区别。loc基于标签(Label)进行数据选取,支持切片包含右边界;iloc基于整数位置(Position)进行索引,遵循左闭右开原则。通过具体代码示例对比两者在行列选取时的不同表现,帮助开发者准确掌握数据筛选技巧。
前言
在使用Pandas进行数据分析时,对DataFrame的行或列进行高效索引是常见需求。目前主要的索引方式包括直接使用行列标签、利用loc函数以及使用iloc函数三种方法。
为了便于理解,先构建一个基础示例:
import numpy as np
import pandas as pd
df = pd.DataFrame({"Fruits":["apple","pear","banana","watermelon"],"Price":[1.2,1.4,2.3,4.2],"Sales":[11,45,25,16]})
df
生成的DataFrame数据结构如下:
| Fruits | Price | Sales | |
| 0 | apple | 1.2 | 11 |
| 1 | pear | 1.4 | 45 |
| 2 | banana | 2.3 | 25 |
| 3 | watermelon | 4.2 | 16 |
1、直接使用行列标签索引
若需选取df中名为Fruits和Price的两列,可执行以下操作:
df[['Fruits','Price']]
| Fruits | Price | |
| 0 | apple | 1.2 |
| 1 | pear | 1.4 |
| 2 | banana | 2.3 |
| 3 | watermelon | 4.2 |
若需选取df中第2至第3行(基于标签切片),可执行以下操作:
df[2:4]
| Fruits | Price | Sales | |
| 2 | banana | 2.3 | 25 |
| 3 | watermelon | 4.2 | 16 |
2、loc函数详解
loc函数依据行标签和列标签进行索引,其标准语法格式为:
DataFrame.loc[行标签,列标签]
若需选取df中第2、3行以及Price和Sales列的数据,可执行以下操作:
df[2:3,'Price':'Sales']
| Price | Sales | |
| 2 | 2.3 | 25 |
| 3 | 4.2 | 16 |
若需选取所有行中Fruits和Sales列的数据,可执行以下操作:
df.loc[:,['Fruits','Sales']]
| Fruits | Sales | |
| 0 | apple | 11 |
| 1 | pear | 45 |
| 2 | banana | 25 |
| 3 | watermelon | 16 |
3、iloc函数详解
iloc函数依据行和列的整数位置进行索引,索引值从0开始计数。需要注意的是,其切片操作遵循左闭右开原则,即结果不包含结束位置的值。其标准语法格式为:
DataFrame.iloc[行位置,列位置]
若需选取df中第2、3行以及第1、2列的数据,可执行以下操作:
df.iloc[2:4,1:3]
| Price | Sales | |
| 2 | 2.3 | 25 |
| 3 | 4.2 | 16 |
若需选取所有行中第0列和第2列的数据,可执行以下操作:
df.iloc[:,[0,2]]
| Fruits | Sales | |
| 0 | apple | 11 |
| 1 | pear | 45 |
| 2 | banana | 25 |
| 3 | watermelon | 16 |
总结
以上就是关于Python Pandas中loc与iloc索引函数区别的详细解析,更多相关Pandas索引函数loc和iloc的内容请搜索本站以前的文章或继续浏览下面的相关文章,希望大家以后多多支持本站!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













