python对多层列索引取值

处理 Dataframe数据,遇到了一个 多层列索引 的数据,再进行切片数据的时候,遇到了一些问题,所以对 多层列索引 的切片做个 整体的总结

首先生成一下数据

import numpy as np
import pandas as pd 
a = pd.MultiIndex.from_product([['第一期','第二期','第三期','第四期'],
								['A', 'B', 'C'],['男','女']], 
								names=['期度','产品','性别'])
df = pd.DataFrame(data = np.random.randint(50,100, size=(3,24)), 
								columns=a,index=['1','2','3'])

在这里插入图片描述

数据切片的2种方法,loc 以及 iloc ,做个简单的总结

  • loc是针对索引名使用的
  • iloc是针对下标值使用的

下面使用这两种方法对df进行切片取值,取出下图红框中的数据
在这里插入图片描述

loc

loc的方法,不管是行索引,还是列索引 都必须使用 索引名,所以如果索引中有数字作为索引的时候,要加上引号

# 3行数据,所以把行所以写上 ['1','2',"3"]
# 两列不相邻的数据,从第一层列索引开始,按照索引层级依次写入元组。
# 一个元组是一个条件【一列数据】,多个条件用列表包裹
df.loc[['1','2',"3"],[('第一期','A','男'),('第二期','A','男')]]

在这里插入图片描述

iloc

iloc的方法,是直接使用下标,行列 都是从0开始 按照下标,列数按照最后一层索引的下标开始

# 行 从0开始  
# 列 最后一层索引,性别这一行列名  下标分别为 0  6
df.iloc[0:3,[0,6]]

在这里插入图片描述

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值