为什么在对排序索引进行索引查找时进行PerformanceWarning?

时间:2018-02-19 05:42:03

标签: python pandas

有谁知道为什么会提供PerformanceWarning?

d=pd.DataFrame(
    [
        [1,2,3],
        [1,2,4],
        [1,None,5],
        [2,3,5],
    ],
    columns=['i','j','k']
)
print d.dtypes
d = d.set_index(['i','j'])['k']
d = d.sort_index()

print d.loc[(2,3)] #  PerformanceWarning: indexing past lexsort depth may impact performance.

我对文档的理解是,PerformanceWarning来自于不对索引进行排序(索引已排序)。

1 个答案:

答案 0 :(得分:2)

事实证明这是一个开放的错误:

@ ayhan的评论提供了解决方法:

d = d.sort_index(level=d.index.names)

应该是以下的默认行为:

d = d.sort_index()