提问人:victorx 提问时间:3/3/2020 最后编辑:Kirill Kondratenkovictorx 更新时间:11/6/2023 访问量:525
Pandas 是否对单索引数据帧使用哈希,对多索引数据帧使用二进制搜索?
Does Pandas use hashing for a single-indexed dataframe and binary searching for a multi-indexed dataframe?
问:
我一直认为 Pandas 在为 DataFrame 中的行编制索引时使用哈希,以便像 .df.loc[some_label]
O(1)
但是,我今天才意识到情况并非如此,至少对于多索引数据帧而言是这样。正如文档中所指出的,“即使数据未排序,索引也会起作用,但效率相当低(并显示 PerformanceWarning)”。我发现的一些文章似乎表明,对于多索引数据帧,如果您调用了数据帧,Pandas 将使用基于二进制搜索的索引;否则,它只是线性扫描行。sort_index()
我的问题是
- 单索引数据帧是否使用基于哈希的索引?
- 如果不是问题 1,它是否在调用时使用二进制搜索,否则使用线性扫描,就像在多索引数据帧的情况下一样?
sort_index()
- 如果问题 1 是肯定的,为什么 Pandas 也选择不对多索引使用基于哈希的索引?
答: 暂无答案
评论