19 pandas 分层索引与计算

分层设置与查询

数据

在这里插入图片描述

index 为有序

import pandas as pd
path='C:/Users/Admin/Desktop/pandas/多层索引.xlsx'
data =pd.read_excel(path,index_col=[0,1],sheet_name='有序')#设置分层索引
#data=data.set_index('班级','序号') #也可以这样设置分层索引
data2=data.loc[('1班',slice(None)),:] # 切片筛选
print(data2)

在这里插入图片描述

在这里插入图片描述

index 为无序(中文)

查看数据

在这里插入图片描述

示例

import pandas as pd
path='C:/Users/Admin/Desktop/pandas/多层索引.xlsx'
data =pd.read_excel(path,sheet_name='无序')#设置分层索引
data=data.set_index('科目','分数')# 设置分层索引
data2=data.sort_index(level='科目')
data2=data.loc[('语文',slice(None))]
print(data2)

在这里插入图片描述

多层索引的创建方式(行)

在这里插入图片描述

1、from_arrays 方法

在这里插入图片描述

import pandas as pd
多层索引 = pd.MultiIndex.from_arrays([['a', 'a', 'b', 'b'], [1, 2, 1, 2]],names=['x','y'])
print(多层索引)

在这里插入图片描述

2、from_tuples 方法

在这里插入图片描述

import pandas as pd
多层索引 = pd.MultiIndex.from_tuples([('a',1),('a',2),('b',1),('b',2)],names=['x','y']) 
print(多层索引)

3、from_product 方法

在这里插入图片描述

import pandas as pd
多层索引 = pd.MultiIndex.from_product([['a', 'b'], [1, 2]],names=['x','y'])
print(多层索引)

在这里插入图片描述
在这里插入图片描述

多层索引的创建方式(列)

import pandas as pd
import numpy as np
index = pd.MultiIndex.from_product([[2019, 2020], [5, 6]],names=['年', '月'])
columns = pd.MultiIndex.from_product([['香蕉', '苹果'], ['土豆', '茄子']],names=['水果', '蔬菜'])
数据 = pd.DataFrame(np.random.random(size=(4, 4)), index=index, columns=columns)  # 笔记3.2
print(数据)

在这里插入图片描述

分层索引计算

在这里插入图片描述

import pandas as pd
路径='C:/Users/Admin/Desktop/pandas/销售.xlsx'
数据 = pd.read_excel(路径,header=[0,1]) # 设置前2行是表头,笔记2.1.2
# print(数据.columns)
# 结果1 = 数据[('土豆', '销量')]+数据[('倭瓜', '销量')] # 通过两层索引相加
# print(结果1)
# 结果2 = 数据['土豆'] +数据['倭瓜'] # 通过第一层索引相加
# print(结果2)
总计 = 数据['土豆']+数据['倭瓜']
# print(总计) # 单层索引与多层索引无法拼接
总计.columns = pd.MultiIndex.from_product([['合计'],总计.columns])
# print(总计)
结果 =pd.concat([数据,总计],axis=1)  # 横向拼接,笔记4.3.3
print(结果)

在这里插入图片描述

在这里插入图片描述

MultiIndex 参数表

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值