2017-06-21 61 views
2

無總和爲分層索引的列中的數據幀:層次索引的Sum列?

dex1 dex2 dex3 one two 
    H D A 1 2  
      B 4 5  
      C 7 8  
    I E A 1 1  
      B 2 2  
      C 3 3 

與總和數據幀爲一個分層索引的列應是,列DF [「一個」]索引DEX1,12(1 + 4對於索引dex1,12(1 + 4 + 7),6(1 + 2 + 3)的列df ['two'],

到目前爲止,我曾嘗試:

df.loc[dex1].sum['one'] 

回答

2

您可以使用groupby + GroupBy.sum

df1 = df.groupby(level='dex1').sum() 
print (df1) 
     one two 
dex1   
H  12 15 
I  6 6 

從大熊貓的版本0.20.0可能omit level參數。

df1 = df.groupby('dex1').sum() 
print (df1) 
     one two 
dex1   
H  12 15 
I  6 6 

或者使用DataFrame.sum與參數level:爲實現

df1 = df.sum(level=0) 
print (df1) 
     one two 
dex1   
H  12 15 
I  6 6 
df1 = df.sum(level='dex1') 
print (df1) 
     one two 
dex1   
H  12 15 
I  6 6 
+1

這個答案是正確的。爲了我的目的,我儘量避免使用.groupby(),所以df.sum(level = int)很好。謝謝! –

+0

澄清,當你說在熊貓0.20.1中可能省略等級,那麼可以說df1 = df.groupby('dex1')。sum()? –

+1

是的,確切地說。我添加鏈接。 – jezrael