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