python pandas loc iloc区别与联系
按“位置”寻址有时被称为“位置索引”,这只是增加了混淆。
一对方括号是不够的。特别是:
- S[2:3]不是解决元素2最方便的方式
- 如果名称恰好是整数,s[1:3]就会产生歧义。它可能意味着名称1到3包含或位置索引1到3不包含。
为了解决这些问题,Pandas还有两种“风格”的方括号,你可以在下面看到:
![](https://pic4.zhimg.com/80/v2-ed62baf088de916d1d1e8269b1a56557_720w.webp)
.loc总是使用标号,并且包含间隔的两端。
.iloc总是使用“位置索引”并排除右端。
使用方括号而不是圆括号的目的是为了访问Python的切片约定:你可以使用单个或双冒号,其含义是熟悉的start:stop:step。像往常一样,缺少开始(结束)意味着从序列的开始(到结束)。step参数允许使用s.iloc[::2]引用偶数行,并使用s['Paris':'Oslo':-1]以相反的顺序获取元素。
它们还支持布尔索引(使用布尔数组进行索引),如下图所示:
![](https://pic2.zhimg.com/80/v2-349c41615f78b49cc57ffeeba883a735_720w.webp)
你可以在下图中看到它们如何支持` fancy indexing `(用整数数组进行索引):
![](https://pic3.zhimg.com/80/v2-32e22f7f3efed04f5f5ce7295fba5eaa_720w.webp)