Pandas学习笔记 03 索引
第三章 索引 总结
1 索引器
[]:列选择
loc:基于元素
iloc: 基于位置
query:减少代码长度
2 多级索引
行索引和列索引都是MultiIndex类型,索引中的元素是元组。
索引的名字和值属性可以通过names和values获得。
通过get_level_values(n)可以获得第n层的索引。
通过IndexSlice可以多层切片。
构造方法:from_tuples, from_arrays, from_product
3 索引的常用方法
3.1 索引层的交换和删除
swaplevel:交换指定轴的两个索引层
reorder_levels:交换指定轴的任意层
droplevel:删除某一层的索引
3.2 索引属性的修改
rename_axis: 修改索引层的名称,传入字典或函数
rename:修改索引值,level指定索引层,传入字典或函数
map:定义在index上的方法,直接传入索引的元组,可以对多级索引进行压缩或展开。
3.3 索引的设置与重置
set_index:设置索引,默认删除原索引,append=True表示保留原索引,新设定作为内层索引。
reset_index:取消索引,默认将取消的索引层添加到列中,drop=True表示去掉索引层。
3.4 索引的变形
reindex:传入index和columns参数列表,新表会根据索引自动对齐。
reindex_like:传入DataFrame参数,仿照该参数变形。
4 索引运算
交集:id1.intersection(id2) 	id1 & id2
并集:id1.union(id2) 	 id1 | id2
差集:id1.difference() 	(id1 ^ id2) & id1
对称差集:id1.symmetric_difference(id2) 	id1 ^ id2
(注意unique去重)
5 索引切片
5.1 单层索引切片
5.1.1 序列Series的行索引
a. 字符串切片,包含两个端点,前后端点值重复出现则需先排序
b. 整数切片,左闭右开,取出索引位置的值
5.1.2 loc索引器
a. 字符串切片,包含两个端点,端点不唯一则报错
b. DataFrame整数切片,包含两个端点且不能重复
c. 函数无法返回切片形式,要用slice对象进行包装
5.1.3 iloc索引器(位置筛选)
a. 切片不包含结束端点
b. 传入切片为返回值的函数,使用slice对象包装
5.2 多级索引切片
5.2.1 与单层索引的区别
单层索引中,切片端点元素唯一即可切片;
多级索引中,切片前必须排序
5.2.2 IndexSlice对象切片
IndexSlice可以分层切片,将切片与布尔列表混用。(定义:idx = pd.IndexSlice)
a. loc[idx[*,*]]型,不能分层切片
b. loc[idx[*,*],idx[*,*]]型,可以多层分别切片,但不支持使用函数
参考:
joyful pandas教程 https://github.com/datawhalechina/joyful-pandas
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号