pd.MultiIndex()多層次索引


pd.MultiIndex    
構造器 MI levels 每個級別不重復的標簽
labels 每個級別的整數指定每個位置
*sortorder=None  
*names=None 每個級別的name
copy=False  
verify_integrity=True 檢查levels和labels

 

 

 

 

 

 

 

 

.from_arrays() MI arrays  ** list_like: [[一級索引],[二級索引]], 每一級長度都必須跟索引長度相同
.from_product() MI iterable  ** [無重復值的迭代器], 排列組合生成長度為 len(1)*len(2)*... 的索引
.from_tuple() MI tuples  ** [(第n行索引, )], tuple的第一個元素為一級標簽, ...





In[38]:
import pandas as pd
m_index1=pd.MultiIndex(levels=[['A','B'],['x1','x2']],labels=[[0,1],[0,1]],name=[None,"class2"])
m_index1
 
 
Out[38]:
MultiIndex(levels=[['A', 'B'], ['x1', 'x2']],
           labels=[[0, 1], [0, 1]],
           names=[None, 'class2'])
 
In [43]:
  df1 =pd.DataFrame(np.random.randint(1,10,(2,3)),index=m_index1)
df1
 
 
Out[43]:
    0 1 2
  class2      
A x1 1 4 9
B x2 4 9 6
 
                 
In [56]:
 
class1=['A','A','B','B']
class2=['x1','x2','y1','y2']
pd.MultiIndex.from_arrays([class1,class2],names=['class1','class2'])
 
 
Out[56]:
MultiIndex(levels=[['A', 'B'], ['x1', 'x2', 'y1', 'y2']],
           labels=[[0, 0, 1, 1], [0, 1, 2, 3]],
           names=['class1', 'class2'])
In [57]:
 
pd.MultiIndex.from_product([['A','B'],['x1','y1']],names=['class1','class2'])
 
Out[57]:
MultiIndex(levels=[['A', 'B'], ['x1', 'y1']],
           labels=[[0, 0, 1, 1], [0, 1, 0, 1]],
           names=['class1', 'class2'])


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM