我正在学习Python Pandas图书馆。来自R背景,索引和选择功能似乎比需要的要复杂。我理解.loc()仅基于标签,而.iloc()仅基于整数。

Why should I ever use .loc() and .iloc() if .ix() is faster and supports integer and label access?

答案

请参考文档索引的不同选择,它清楚地指出了何时以及为什么要使用**.loc, .iloc** 超过**.ix**,这是关于明确用例:

.ix支持混合整数和基于标签的访问。它主要是基于标签的,但是除非相应的轴是整数类型,否则将落后于整数位置访问。.ix是最通用的,将支持.loc和.iloc中的任何输入。.ix还支持浮点标签方案。当处理混合位置和基于标签的层次索引时,.ix非常有用。

但是,当轴基于整数时,仅支持基于标签的访问而不是位置访问。因此,在这种情况下,通常最好是说明并使用.iloc或.loc。

更新2017年3月22日

感谢@Alexander的评论,Pandas 要贬值ix0.20 ,详细信息在这里

背后的强烈原因之一是因为混合索引 - 位置和标签(有效地使用ix)是用户的重要问题。

预计将迁移以使用ilocloc相反,这是一个链接如何转换代码

来自: stackoverflow.com