没有合适的资源?快使用搜索试试~ 我知道了~
[Python3] Pandas —— (三) 层级索引
5星 · 超过95%的资源 5 下载量 76 浏览量
2020-12-21
10:33:10
上传
评论 1
收藏 89KB PDF 举报
温馨提示
试读
7页
文章目录五、层级索引(一)多级索引Series1. 低效方法:用Python元组表示索引2. 高效方法:Pandas多级索引3. 高维数据的多维索引(二)多级索引的创建方法1. 显式地创建多级索引2. 多级索引的等级名称3. 多级列索引(三)多级索引的取值和切片1. Series多级索引2. DataFrame多级索引(四)多级索引行列转换1. 有序的索引和无序的索引2. 索引stack与unstack3. 索引的设置与重置(五)多级索引的数据累计方法 五、层级索引 对于存储多维数据的需求,数据索引超过一两个键,Pandas提供了Panel和Panel4D对象解决三维数据和四维数据。(本文不
资源推荐
资源详情
资源评论
[Python3] Pandas —— (三三) 层级索引层级索引
文章目录文章目录五、层级索引(一)多级索引Series1. 低效方法:用Python元组表示索引2. 高效方法:Pandas多级索引3. 高维数据
的多维索引(二)多级索引的创建方法1. 显式地创建多级索引2. 多级索引的等级名称3. 多级列索引(三)多级索引的取值和
切片1. Series多级索引2. DataFrame多级索引(四)多级索引行列转换1. 有序的索引和无序的索引2. 索引stack与unstack3. 索
引的设置与重置(五)多级索引的数据累计方法
五、层级索引五、层级索引
对于存储多维数据的需求,数据索引超过一两个键,Pandas提供了Panel和Panel4D对象解决三维数据和四维数据。
(本文不
涉及
Panel
)
而实践中,更直观的形式是通过层级索引层级索引(hierarchical indexing, 或多级索引多级索引 multi-indexing)配合多个有不同等级的一级索
引一起使用,可以将高维数组转换成类似一维Series和二维DataFrame对象的形式。
(一)多级索引(一)多级索引Series
1. 低效方法:用低效方法:用Python元组表示索引元组表示索引
import numpy as np
import pandas as pd
# 用一维Series对象表示二维数据
# 1. 笨方法:用Python元组表示索引
index = [('California', 2000), ('California', 2010), ('New York', 2000),
('New York', 2010), ('Texas', 2000), ('Texas', 2010)] populations = [33871648, 37253956, 18976457, 19378102, 20851820,
25145561] pop = pd.Series(populations, index=index)
pop
# (California, 2000) 33871648
# (California, 2010) 37253956
# (New York, 2000) 18976457
# (New York, 2010) 19378102
# (Texas, 2000) 20851820
# (Texas, 2010) 25145561
# dtype: int64
# 通过元组构成的多级索引在Series上取值或切片查询
pop[('California', 2010):('Texas', 2000)] # (California, 2010) 37253956
# (New York, 2000) 18976457
# (New York, 2010) 19378102
# (Texas, 2000) 20851820
# dtype: int64
# 选择2000年的数据(效率低)
pop[[i for i in pop.index if i[1] == 2010]] # (California, 2010) 37253956
# (New York, 2010) 19378102
# (Texas, 2010) 25145561
# dtype: int64
2. 高效方法:高效方法:Pandas多级索引多级索引
Pandas的MultiIndex类型:
levels属性表示索引的等级,可以将索引作为每个数据点的不同标签
reindex方法将索引重置
# Pandas的MultiIndex类型
# 用元组创建一个多级索引
index = pd.MultiIndex.from_tuples(index)
index
# MultiIndex(levels=[['California', 'New York', 'Texas'], [2000, 2010]],
# codes=[[0, 0, 1, 1, 2, 2], [0, 1, 0, 1, 0, 1]])
# 重置索引
pop = pop.reindex(index)
pop
# California 2000 33871648
# 2010 37253956
# New York 2000 18976457
# 2010 19378102
# Texas 2000 20851820
# 2010 25145561
weixin_38701683
- 粉丝: 4
- 资源: 927
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页