最近在学 pandas这个库,感觉这个库确实厉害,它的简洁性和易用性让它成为数据分析得心应手的工具。
本文就不讲如何安装以及怎么入门,主要讲的是 Pandas 中 ix、loc、iloc 的区别用法。
简单解释
loc
:从索引获取具有特定标签的行(或列),可以通过行号和行标签iloc
:获取索引中特定位置的行(或列),所以它只需要整数也就是行号ix
:通常会像loc
一样行为,但是如果索引中不存在标签,则会回到像iloc
一样的行为
注意:
ix 的行为与索引值类型有关。如果索引值为integer
类型时,比如[1, 2, 3, 4, 5]
,ix 就和 loc 一样,是把索引值比如5
当作行标签而不是行号进行处理;当索引值为混合型
时,比如['a', 'b', 'd', 1, 2, 3, 4]
时,ix 就和 iloc 一样了,把索引值比如3
当作行号而不是行标签来处理。
使用举例
Series
|
|
当索引值是整数类型时:
iloc
是通过行号进行切片,也就是前面三行
loc
是通过行标签切片至行标签为 3 那里,并且包括 3
ix
跟loc
一样,因为 3 在索引里面并且使用 ix 的时候,有提示让我们不要再用 ix 这种方法了
|
|
iloc
同样是行号,前面六行
loc
报错,因为索引是整型数字,所以会将 6 理解为行标签为 6 的行,找不到自然报错
ix
同loc
|
|
从上面可以看出,当索引类型为混合类型时,ix 既可以像 iloc,也可以像 loc
DataFrame
|
|
总结
使用建议:
1)当用行号索引的时候, 尽量用 iloc 来进行索引;
2)而用行标签索引的时候用 loc;
3)ix 就别用了。