我正在学习Python熊猫库。来自R的背景,索引和选择函数似乎比它们需要的复杂。我的理解是.loc()仅基于标签,.iloc()仅基于整数。
如果.ix()更快并且支持整数和标签访问,为什么还要使用.loc()和.iloc()?
我正在学习Python熊猫库。来自R的背景,索引和选择函数似乎比它们需要的复杂。我的理解是.loc()仅基于标签,.iloc()仅基于整数。
如果.ix()更快并且支持整数和标签访问,为什么还要使用.loc()和.iloc()?
Answers:
请参考文档“索引的不同选择”,该文件清楚地说明了何时以及为什么应该在.ix上使用.loc,.iloc,这与显式用例有关:
.ix支持基于整数和标签的混合访问。它主要基于标签,但是将退回到整数位置访问,除非相应的轴是整数类型。.ix是最通用的,将支持.loc和.iloc中的任何输入。.ix还支持浮点标签方案。.ix在处理混合的位置和基于标签的层次索引时特别有用。
但是,当轴基于整数时,仅支持基于标签的访问,而不支持位置访问。因此,在这种情况下,通常最好是显式并使用.iloc或.loc。
希望这可以帮助。
由于从@Alexander评论,大熊猫将要弃用ix
在0.20,细节在这里。
背后的重要原因之一是,混合索引-位置和标签(有效使用ix
)已成为用户的重要问题来源。
预计迁移到使用iloc
和loc
替代,这里是一个链接如何转换代码。
.ix
索引器将在大熊猫被废弃0.20.0 pandas-docs.github.io/pandas-docs-travis/...