我正在学习Python pandas库。来自R背景,索引和选择函数看起来比它们需要的更复杂。我的理解是.loc()仅基于标签,而.iloc()仅基于整数。
如果.loc()更快并且支持整数和标签访问,我为什么还要使用.ix()和.iloc()?
发布于 2014-12-27 21:40:38
请参考Different Choices for Indexing文档,它清楚地说明了您应该在什么时候以及为什么使用.loc,.iloc over .ix,它是关于明确的用例:
.ix支持混合整数和基于标签的访问。它主要是基于标签的,但将回退到整数位置访问,除非相应的轴是整数类型。.ix是最通用的,可以支持.loc和.iloc中的任何输入。.ix还支持浮点标签方案。在处理基于位置和标签的混合层次索引时,.ix特别有用。
但是,如果轴是基于整数的,则仅支持基于标签的访问,而不支持位置访问。因此,在这种情况下,显式地使用.iloc或.loc通常更好。
希望这能有所帮助。
更新22 2017年3月
感谢@Alexander的评论,Pandas将在0.20中弃用ix
,详细信息请参见here。
背后的一个强大原因是因为混合索引-位置和标签(有效地使用ix
)已经成为用户问题的一个重要来源。
预计它将迁移到使用iloc
和loc
,这里是how to convert code上的链接。
https://stackoverflow.com/questions/27667759
复制相似问题