在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 用例
#2 直接使用索引
#2.1 当我们直接对df进行索引时,它其实通过将其看作label索引来进行数据的筛选,所以方括号中需要写入的是你所需要的列的label,如果是position 则会报错
#2.2 另外,这里有一个特殊的点,当我们直接使用索引切片时,他采用的又是另一种方式:将索引内容看作row position去匹配相应的行
#2.3 可惜的是,直接索引并不能同时选中行列
#3 使用loc
#3.1 loc 使用label匹配的方式来筛选元素,下面有典型的筛选元素的例子
# 4 使用iloc
#4.1 iloc 是通过position索引来筛选数据,其操作方式与loc类似,只不过将label换做position即可,不过这里有一点要注意的就是在iloc中使用布尔运算时有一点不同
# 5 总结
还有一点需要注意的是:使用label进行切片时,取值区间为左闭右闭,使用position则是左闭右开
loc 与iloc 的使用其实还是很简单的,当我们需要只知道position或需要通过position来筛选数据时,我们就使用iloc,否则我们使用loc就好了,同时,如果两者都不想使用,想使用直接索引的话,请注意索引切片方式的不同