2017-04-11 48 views
1

兩個Q的:如何設置不同的陣列與大熊貓未成年人指數數據幀多指標

1)是否有可能建立一個多指標熊貓數據幀不同的「小」指標,例如:

Col1 Col2 
0 
    a 0.1 0.01 
    b 0.2 0.02 
    c 0.3 0.03 
1 
    m 0.8 0.00 
    n 0.9 0.01 
    v 0.7 0.10 

當使用熊貓MultiIndex我只能設置爲所有主要指數相同的次要指數。我想知道是否有辦法指定不同的數組,所有的長度都與次要索引相同? 2)說小指數(a,b,c,m,n,v)是浮點數。有沒有辦法使用熊貓的平均方法來平均這些值?到目前爲止,我只能將未指定爲索引的數據平均。

謝謝!

回答

0

是的,是的。

創建多級索引數據:

array = list(zip([0]*3,list('abc')))+list(zip([1]*5,list('vwxyz'))) 
array 

輸出:

[(0, 'a'), 
(0, 'b'), 
(0, 'c'), 
(1, 'v'), 
(1, 'w'), 
(1, 'x'), 
(1, 'y'), 
(1, 'z')] 

使用pd.MutliIndex創建索引,並創建一個數據幀:

idx = pd.MultiIndex.from_tuples(array,names=['one','two']) 
df = pd.DataFrame({'Col1':np.random.random(8),'Col2':np.random.random(8)*10},index=idx) 

print(df) 

輸出:

   Col1  Col2 
one two      
0 a 0.747933 3.191390 
    b 0.020055 1.726661 
    c 0.342344 5.595333 
1 v 0.298349 5.136354 
    w 0.445190 3.952943 
    x 0.921896 7.905128 
    y 0.782851 0.132475 
    z 0.259996 9.938946 

做整體平均:

df.mean() 

輸出:

Col1 0.477327 
Col2 4.697404 
dtype: float64 

不要用 '一' 的意思是:

print(df.groupby(level=0).mean()) 

輸出:

  Col1  Col2 
one      
0 0.370111 3.504461 
1 0.541656 5.413169 
+0

就是這樣。萬歲! – GSEL