Pandas学习笔记 03 索引

第三章 索引 总结

1 索引器

[]:列选择

loc:基于元素

iloc: 基于位置

query:减少代码长度

2 多级索引

行索引和列索引都是MultiIndex类型,索引中的元素是元组。

索引的名字和值属性可以通过namesvalues获得。

通过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:传入indexcolumns参数列表,新表会根据索引自动对齐。

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

posted @ 2022-03-05 16:27  ikventure  阅读(94)  评论(0编辑  收藏  举报