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]:
In [5]:
df['qimo']
Out[5]:
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. 聚合操作
所謂的聚合操作:平均數,方差,最大值,最小值……