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]:
tom108806172
jay8310411074
In [5]:
df['qimo']
Out[5]:
tom6172
jay11074
 

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. 聚合操作

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

02-12 23:20