Pandas基础(二)

4 索引器
4.1列索引
列索引通过[]实现,[[列名列表]]可以取出多个列,组成DataFrame
4.2序列的行索引
以字符串为索引的Series,可以用[item],如有多个值对应则返回Series。
取出多个索引的对应元素,则可以使用[items的列表]。
以整数为索引的Series,可以使用[int]或者[int_list]
4.3loc索引器(基于元素)
loc索引器一般形式为[,],其中分别代表行列的选择,如果忽略列的选择可以写出[*]表示按行索引。
支持:单个元素、元素列表、布尔列表、函数
单个元素:直接取出对应行或者列
元素列表:取出对应元素的行或者列
切片:元素切片,包含端点,且切片范围内不能有重复值
布尔列表:isin()方法
支持:|,&,~
函数:必须以前面的四种合法形式之一为返回值
返回切片时应用slice对象包装
支持lambda表达式
4.4iloc索引器(基于元素)
支持形式:整数,整数列表,整数切片,布尔列表,函数

df_demo.iloc[1,1]
#第二行第二列
df_demo.iloc[[0,1],[0,1]]
#前两行,前两列
df_demo.iloc[1:4,2:4]
#切片不包含结束端点

使用布尔列表时,必须传入Series的值。
4.5query()
在 pandas 中,支持把字符串形式的查询表达式传入 query 方法来查询数据
支持:or, and, or, is in, not in
4.6随机抽样
sample()函数
参数: n, axis, frac, replace, weights
frac:抽样比例
replace:是否放回抽样,True有放回
4.7多级索引
4.7.1多级索引构造
set_index 之外,如何自己构造多级索引呢?常用的有from_tuples, from_arrays, from_product 三种方法。
from_product:笛卡儿积构造
4.7.2多级索引的索引方法
1、得到某一层的索引:get_level_values(n),n为层数
2、由于多级索引中的单个元素以元组为单位,因此之前在第一节介绍的 loc 和 iloc 方法完全可以照搬,只需把标量的位置替换成对应的元组。
3、在多级索引中的元组有一种特殊的用法,可以对多层的元素进行交叉组合后索引,但同时需要指定loc 的列,全选则用 : 表示。其中,每一层需要选中的元素用列表存放,传入 loc 的形式为 [(level_0_list,level_1_list),cols]
4.7.3IndexSlice对象
Slice 对象一共有两种形式,第一种为 loc[idx[,]] 型,第二种为 loc[idx[,],idx[,]] 型
loc[idx[rows,cols]],rows表示行的选择,cols表示列的选择。与普通的loc类似。
loc[idx[rows,rows2],idx[cols,cols2]]
前一个idx指代的是行索引,后一个是列索引。这种情况下可以针对行或者列的多级索引进行分层切片。
4.8索引的常用方法
1、索引层的交换
swaplevel()只能交换两个层
reorder_levels()交换任意层
2、索引层的删除
drop_level(整数或整数列表,axis)
3、索引的修改
rename_axis()可以对索引层的名字进行修改,常用的是传入字典映射。
rename()传入字典映射,多级索引需要指定修改的层号,修改索引的值
4、map()方法
定义在Index上的方法
可以跨层修改
5、索引的设置与重置
set_index()设置为索引,append表示是否保存原来的索引
reset_index()set_index()的逆函数,drop=True表示丢掉该层不再添加到数据表中
4.9索引的运算
常用的集合运算:
在这里插入图片描述
整理自:https://github.com/datawhalechina/joyful-pandas

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值