布尔索引的深入应用与实践
1. 索引排序对选择性能的影响
在数据选择过程中,索引的排序状态对性能有着显著影响。当索引未排序且包含重复值时,如 college2 ,Pandas 需要检查索引中的每个值来进行正确选择。而当索引已排序,如 college3 ,Pandas 会利用二分查找算法,极大地提高选择性能。
此外,使用唯一列作为索引时,Pandas 通过哈希表实现唯一索引,能进一步加快选择速度,无论索引长度如何,每个索引位置的查找时间几乎相同。
我们还可以将多列连接起来形成复合索引。例如,将 city 和 state 列连接作为索引:
college.index = college['CITY'] + ', ' + college['STABBR']
college = college.sort_index()
college.head()
这样就可以在不使用布尔索引的情况下选择特定城市和州的所有大学,如选择迈阿密(Miami)、佛罗里达州(FL)的所有大学:
college.loc['Miami, FL'].head()
通过性能对比可以发现,复合索引选择比布尔索引选择快一个数量级以上:
%%timeit
crit1 = college['CI
超级会员免费看
订阅专栏 解锁全文
780

被折叠的 条评论
为什么被折叠?



