我正在学习Python pandas库。来自R背景,索引和选择功能似乎比它们需要的更复杂。我理解.loc()只是基于标签而.iloc()只是基于整数。
如果.ix()更快并且支持整数和标签访问,为什么我应该使用.loc()和.iloc()?
答案 0 :(得分:68)
请参阅文档Different Choices for Indexing,它明确说明何时以及为何使用 .loc,.iloc 而不是 .ix ,这是关于明确使用的情况下:
.ix支持基于混合整数和标签的访问。它主要是 基于标签,但将回退到整数位置访问,除非 相应的轴是整数类型。 .ix是最通用的 将支持.loc和.iloc中的任何输入。 .ix也支持 浮点标签计划。 .ix在交易时特别有用 基于位置和标签的混合分层指数。
但是,当轴是基于整数的时,仅限基于标签的访问和 不支持位置访问。因此,在这种情况下,通常是这样 更好地明确并使用.iloc或.loc。
希望这有帮助。
感谢来自@Alexander的评论, Pandas 将在 0.20 中弃用ix
,详情请见here。
背后的一个重要原因是混合索引 - 位置和标签(有效地使用ix
)一直是用户问题的重要来源。
预计会迁移到使用iloc
和loc
,而这是how to convert code上的链接。