python 之 loc 与 iloc 的区别与使用

在DataFrame数据格式中,列名,行名为label,其所在的索引位置0,1,2,3,4 等数字为position。

通过 label,position我们可以定位元素,而部分函数只能使用label,部分函数只能使用position

loc 与 iloc 两个函数的主要区别为:

loc gets rows(or columns) with particular labels

iloc gets rows(or columns) with integer locations

下面通过例子具体记录一下两者的使用细节

#1 首先创建一个dataframe 用例

#1

#2 直接使用索引

#2.1 当我们直接对df进行索引时,它其实通过将其看作label索引来进行数据的筛选,所以方括号中需要写入的是你所需要的列的label,如果是position 则会报错



通过label标签组成的list进行多列数据的筛选

#2.2 另外,这里有一个特殊的点,当我们直接使用索引切片时,他采用的又是另一种方式:将索引内容看作row position去匹配相应的行



#2.3 可惜的是,直接索引并不能同时选中行列

#3 使用loc

#3.1 loc 使用label匹配的方式来筛选元素,下面有典型的筛选元素的例子


错误使用:在loc中使用position


选取label为10的数据行


通过切片选择第一行到label为30 的行


通过list加切片的方式筛选数据


通过布尔运算选择相应数据

# 4 使用iloc

#4.1 iloc 是通过position索引来筛选数据,其操作方式与loc类似,只不过将label换做position即可,不过这里有一点要注意的就是在iloc中使用布尔运算时有一点不同


iloc通过布尔运算选择相应数据

# 5 总结

还有一点需要注意的是:使用label进行切片时,取值区间为左闭右闭,使用position则是左闭右开

loc 与iloc 的使用其实还是很简单的,当我们需要只知道position或需要通过position来筛选数据时,我们就使用iloc,否则我们使用loc就好了,同时,如果两者都不想使用,想使用直接索引的话,请注意索引切片方式的不同

你可能感兴趣的:(python 之 loc 与 iloc 的区别与使用)