布尔索引的使用及相关操作
1. 索引排序对选择性能的影响
在数据选择时,索引的排序状态会对性能产生显著影响。当索引未排序且包含重复值时,如 college2 ,pandas 需要检查索引中的每个值才能进行正确选择。而当索引已排序,如 college3 ,pandas 会利用二分查找算法来大幅提高性能。
若使用唯一列作为索引,pandas 会用哈希表实现唯一索引,从而使选择速度更快。无论索引长度如何,每个索引位置的查找时间几乎相同。
此外,布尔选择比索引选择更具灵活性,因为它可以基于任意数量的列进行条件筛选。我们还可以将多列连接起来形成索引,示例代码如下:
college.index = college['CITY'] + ', ' + college['STABBR']
college = college.sort_index()
college.head()
通过这种方式,我们可以在不使用布尔索引的情况下选择特定城市和州的所有学院,例如选择迈阿密、佛罗里达州的所有学院:
college.loc['Miami, FL'].head()
同时,我们可以比较复合索引选择和布尔索引的速度,结果显示两者存在一个数量级以上的差异:
%%timeit
crit1 = college['CITY'] == 'Miami
超级会员免费看
订阅专栏 解锁全文
780

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



