dataframe 多层索引 多重索引 多个列 自动对列排序 交换索引等级 改变多层索引等级 多层索引查询

本文介绍Pandas库中多层索引的多种操作方法,包括简化、增加与转换索引,生成及选择多重索引,以及如何进行高效的数据查询与聚合。通过实际案例展示了不同场景下多层索引的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


https://www.cnblogs.com/beyondChan/p/10926788.html

b

在这里插入图片描述

多层索引变一层
df1.columns = ['_'.join(col) for col in df1.columns.values]
增加一行/列
a.loc[:, ('支付买家数')] = b
a

在这里插入图片描述

b

在这里插入图片描述

变为多层索引
b2 = b.set_index(['用户手机号', '月份']).unstack('月份')
b2

在这里插入图片描述

交换索引等级
b3 = b2.swaplevel(axis=1)
b3

swaplevel(i=-2,j=-1,axis=1),level=i和level=j的索引对换
在这里插入图片描述

b4 = b3.sort_index(axis=1)
b4

在这里插入图片描述

生成多重索引 笛卡尔积
pd.DataFrame(index=pd.MultiIndex.from_product([['a','b'],['c','d']]))

在这里插入图片描述

选取索引
df.index.levels
pr_cnt2.columns.get_level_values(1).isin(['GMV', 'UV'])

在这里插入图片描述

查看索引层级
df.columns.lexsort_depth
df.columns.levshape
多层索引查询
方法一:xs

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.xs.html
在这里插入图片描述查找,columns为 2022-03-31的数据

df_mom.xs('2022-03-31', axis=1, level=1)

在这里插入图片描述

方法二:df.columns.get_level_values

https://www.5axxw.com/questions/content/htre42

df_mom.loc[:, df_mom.columns.droplevel(0).isin(['2022-02-28', '2023-01-31', '2023-02-28'])]
df_mom.loc[:, df_mom.columns.get_level_values(1)=='2022-03-31']

在这里插入图片描述

多层索引聚合
df.sum(level=0, axis=1)

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值