pandas中iloc和loc的用法和区别

在Pandas中,loc 和 iloc 都是用于数据选择的方法,它们是 DataFrame 和 Series 对象的索引选项。主要的区别在于它们索引数据的方式:

loc

  • loc 是基于标签的索引,意味着它使用数据的标签信息来进行数据选择。

  • 你可以使用行标签(索引名)和列名来选择数据。

  • 它也可以用于通过布尔数组进行筛选。

  • 使用 loc 时,你可以得到的切片包括开始和结束标签。

示例:

python 复制代码
df.loc[0, 'column_name']  # 返回行索引为0,列名为'column_name'的单个元素
df.loc[0:5, 'column_name']  # 返回行索引从0到5(包括5),列名为'column_name'的切片
df.loc[df['column_name'] > 10, 'column_name']  # 布尔索引,返回'column_name'列中大于10的行

iloc

  • iloc 是基于位置的索引,意味着它使用整数索引来进行数据选择。
  • 你只能使用整数索引来指定你想要的行和列。
  • iloc 在选择数据时不包括结束索引。

示例:

python 复制代码
df.iloc[0, 1]  # 返回第0行第1列的单个元素(注意这里是基于0的索引)
df.iloc[0:5, 1]  # 返回第0行到第4行(不包括第5行),第1列的切片

在实践中,loc 更适合当你知道具体的行标签或列名时使用,而 iloc 更适合你只知道行或列的位置索引时使用。在处理有具体行索引或列索引名的DataFrame时,通常更倾向于使用 loc,因为它使代码更容易理解。当你需要基于位置进行纯粹的基于位置的索引时,比如选择第n行或第n列,不管它们的标签是什么,使用 iloc 更方便。需要注意的是,如果行标签恰好也是整数,这可能会导致一些混淆,因为 loc 和 iloc 可能会返回不同的结果。这时,清晰地知道何时使用基于标签的索引(loc)和何时使用基于位置的索引(iloc)非常重要。

相关推荐
第九序言T1 天前
Python 数据处理进阶(十八)批量处理同结构文件:一个文件夹一次跑完
开发语言·python·自动化·pandas·数据处理
quantdash_cc1 天前
如何验证历史行情的交易日期是否完整覆盖研究区间?
python·数据分析·pandas·量化交易·股票数据·quantdash
quantdash_cc1 天前
ETF 行情数据清洗实战:字段语义拆解、标的池整理与五个校验清单
python·数据分析·pandas·量化交易·股票数据·quantdash
benchmark_cc2 天前
用 Python 拉 A 股全市场实时快照:Notebook 请求、结果校验与易错点
python·数据分析·pandas·量化交易·股票数据·quantdash
2601_966949654 天前
Python 实战:如何统计五档盘口买卖盘总挂单量?附计算公式与代码
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
gCode Teacher 格码致知5 天前
Pandas教学25:NumPy 的实战价值集中的四件事
numpy·pandas
gCode Teacher 格码致知5 天前
Pandas教学24:NumPy、Pandas、Matplotlib三者之间的关系
numpy·pandas·matplotlib
2601_966949655 天前
为什么不应该把 QuantDash API Key 直接写进公开代码仓库?从 Git 提交历史理解凭证泄露风险
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
quantdash_cc6 天前
如何检查滚动收益率计算中的窗口长度不足?——从数学定义到 Pandas 实现
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
2601_966949656 天前
如何根据研究的起止时间截取分钟级行情?Python 实战与 QuantDash 数据处理指南
开发语言·python·pandas·量化交易·1024程序员节·股票数据·quantdash