python数据分析——多层索引嵌套


1. 创建多层列索引

1) 隐式构造

最常见的方法是给DataFrame构造函数的index或者columns参数传递两个或更多的数组

qizhong qizhong qimo qimo chinese math chinese math tom 100 90 80 70

jay 100 90 80 70

2) 显示构造pd.MultiIndex.from_

  • 使用数组
- 使用product:
最简单,推荐使用
In [1]:
import numpy as np import pandas as pd from pandas import Series,DataFrame 
In [2]:
col=pd.MultiIndex.from_product([['qizhong','qimo'], ['chinese','math']]) 
In [3]:
#创建DF对象
df = DataFrame(data=np.random.randint(60,120,size=(2,4)),index=['tom','jay'], columns=col) df 
Out[3]:
  qizhong qimo
  chinese math chinese math
tom 108 80 61 72
jay 83 104 110 74
In [5]:
df['qimo'] 
Out[5]:
  chinese math
tom 61 72
jay 110 74
 

2. 多层行索引

除了列索引,行索引也能用上述同样的方法创建多层行索引

3. 多层索引对象的索引与切片操作

1)DataFrame的操作

注意在对行索引的时候,若一级行索引还有多个,对二级行索引会遇到问题!也就是说,无法直接对二级索引进行索引,必须让二级索引变成一级索引后才能对其进行索引! 

切片操作

In [4]:
#获取张三李四期中的php和c++成绩
In [5]:
#获取张三李四所有的成绩
In [16]:
# 总结:
# 访问一列或多列 直接用中括号[columnname] [[columname1,columnname2...]] #访问一行或多行 .loc[indexname] # 访问某一个元素 .loc[indexname,columnname] 获取李四期中的php成绩 # 行切片 .loc[index1:index2] 获取张三李四的期中成绩 # 列切片 .loc[:,column1:column2] 获取张三李四期中的php和c++成绩

5. 聚合操作

所谓的聚合操作:平均数,方差,最大值,最小值……


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM