2017-06-21 7 views
2

DATAFRAME:階層インデックスの合計列?階層インデックスの列の和せず

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 [「1」]インデックスDEX1、12(4 + 1のために、あるべきですインデックス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 

omit levelパラメータ可能です0.20.0パンダのバージョンから。

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

またはパラメータlevelDataFrame.sumを使用します。実装され、この答えが正しいか

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