.ix()总是比.loc()和.iloc()好,因为它速度更快,并支持整数和标签访问?

我正在学习Pythonpandas图书馆。 从R背景来看,索引和selectfunction似乎比他们需要的更为复杂。 我的理解是,.loc()只是基于标签的,而.iloc()只是基于整数的。

为什么我应该使用.loc()和.iloc()如果.ix()更快并支持整数和标签访问?

请参考文档索引的不同select ,它明确指出何时以及为什么要使用.loc,.iloc over .ix ,这是关于明确的用例:

.ix支持基于混合整数和标签的访问。 它主要是基于标签的,但会回落到整数位置访问,除非对应的轴是整数types。 .ix是最通用的,它将支持.loc和.iloc中的任何input。 .ix也支持浮点标签scheme。 .ix在处理基于混合位置和标签的层次索引时特别有用。

但是,如果轴是基于整数的,则仅支持基于标签的访问而不支持位置访问。 因此,在这种情况下,最好是明确的使用.iloc或.loc。

希望这可以帮助。

2017年3月22日更新

感谢@Alexander的评论, Pandas将在0.20中弃用ix ,细节在这里 。

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

预计将迁移到使用ilocloc而这是链接如何转换代码 。