pandas中loc和iloc的区别

在 Pandas 中,lociloc 是用于选择和过滤数据的两种主要方法,它们的区别在于使用的索引类型。

1. loc:基于标签索引

  • loc 是基于行或列的标签(label)来选择数据。它可以按行或列的名称来访问数据,也可以通过布尔索引选择。
  • 支持的索引类型:行标签、列标签、布尔索引。
  • 语法DataFrame.loc[row_indexer, column_indexer]

示例

python 复制代码
import pandas as pd

# 创建示例数据
df = pd.DataFrame({
    'A': [1, 2, 3, 4],
    'B': [5, 6, 7, 8],
    'C': [9, 10, 11, 12]
}, index=['a', 'b', 'c', 'd'])

# 使用 loc 基于行标签选择
print(df.loc['a'])  # 选择标签为 'a' 的行

输出

复制代码
A    1
B    5
C    9
Name: a, dtype: int64
loc 示例用法:
  • 选择行和列:使用行和列标签选择特定的元素或切片。
python 复制代码
df.loc['b', 'A']  # 选择标签为 'b' 的行,'A' 列的元素
  • 选择多个行或列
python 复制代码
df.loc[['a', 'b'], ['A', 'B']]  # 选择 'a' 和 'b' 行的 'A' 和 'B' 列
  • 布尔索引
python 复制代码
df.loc[df['A'] > 2]  # 选择 'A' 列中大于 2 的行

2. iloc:基于整数位置索引

  • iloc 是基于行或列的整数位置(即位置编号)来选择数据。它的工作方式类似于 NumPy 的数组索引方式。
  • 支持的索引类型:整数位置。
  • 语法DataFrame.iloc[row_indexer, column_indexer]

示例

python 复制代码
# 使用 iloc 基于位置选择
print(df.iloc[0])  # 选择位置为 0 的行

输出

复制代码
A    1
B    5
C    9
Name: a, dtype: int64
iloc 示例用法:
  • 选择单个元素
python 复制代码
df.iloc[1, 0]  # 选择位置为 (1, 0) 的元素
  • 选择多个行或列
python 复制代码
df.iloc[0:2, 0:2]  # 选择前两行和前两列

区别总结

特性 loc(基于标签) iloc(基于位置)
索引类型 行/列的标签(可以是字符串、日期等) 行/列的整数位置
支持的索引 标签索引、布尔索引 整数位置索引
示例 df.loc['a'] df.iloc[0]
切片 标签的范围包含最后一个索引(闭区间) 索引的范围不包含最后一个位置(开区间)

具体场景:

  • loc 更适合当你知道数据的标签(比如行名、列名)时,可以进行精确或基于条件的访问。
  • iloc 更适合当你按数据的具体位置(比如第几行、第几列)进行访问时。
相关推荐
benchmark_cc1 天前
如何用 Python 进行多周期 K 线合成与时区对齐?基于 QuantDash 与 Pandas 的量化数据清洗实战(附 GitHub 源码)
开发语言·python·github·盯盘·pandas·quantdash·量化数据
梅雅达编程笔记3 天前
零基础学 Python 第14章 | 模块、包与第三方库
开发语言·python·django·numpy·pandas
梅雅达编程笔记3 天前
零基础学 Python 第15章 | 类与对象:面向对象编程入门
开发语言·python·django·numpy·pandas
benchmark_cc3 天前
Python 量化核心基础:前复权、后复权与不复权有什么区别?基于 QuantDash 的数据处理与回测避坑指南
开发语言·python·pandas·量化策略·量化交易·quantdash
人工干智能4 天前
科普:Pandas 索引器 loc 与 iloc 的编程思维
java·人工智能·pandas
梅雅达编程笔记4 天前
编程启蒙|Scratch 转 Python 系列第9天:字典/哈希表积木双向对照(AI大模型参数配置表实战)
开发语言·人工智能·python·numpy·pandas
benchmark_cc4 天前
用 Streamlit + QuantDash 10分钟拼装一个跨市场持仓风险与相关性诊断面板
开发语言·python·pandas·量化策略·量化交易·quantdash
benchmark_cc5 天前
如何用 Python + QuantDash 快速构建高胜率“配对交易(Pairs Trading)”策略?
开发语言·人工智能·python·pandas·量化交易·quantdash
weixin_307779137 天前
Python Pandas读取Excel Sheet生成SQL WHERE条件
python·sql·自动化·excel·pandas
梅雅达编程笔记8 天前
零基础学 Python 第7章 | 字典 dict:键值对存储
开发语言·python·beautifulsoup·numpy·pandas