2016-04-24 4 views
1

個々の列「1」と「2」の平均を計算したい。 パンダでマルチインデックスレベルにアクセスするには?

この

は私のデータフレーム上のdf.columns文の結果である:

MultiIndex(levels=[['Growth %'], ['One', 'Two']], 
     labels=[[0, 0], [0, 1]], 
     names=[None, 'Years']) 

私は基本的に「ワン」と「二」の列に保持されているすべての数値の平均を出し仕事をしたいです。

私が行う場合:

df.mean(axis=0) 

私が手:

Years 
Growth % One 17.215293 

      Two 45.213257 

dtype: float64 

しかし、私はデータフレームに追加することができますので、私はこれらの列の個々の値を求めています。

私がやって試してみました:

df.mean(levels=[['Growth %'], ['One']]) 

を似バリエーションと一緒に私はそれがそれらの個々の列の平均値を表示するために取得することはできません。

ご協力いただきありがとうございます。

+0

あなたが作業しているdfのサンプルを共有できますか?それは役に立つだろう。 – Thanos

答えて

1

だから、ここで私が再構築するために使用されるものです:

In [17]: index = pd.MultiIndex(levels=[['Growth %'], ['One', 'Two']], labels=[[0, 0], [0, 1]], names=[None, 'Years']) 

In [18]: df = pd.DataFrame(np.random.randn(2,6), index=index) 

In [19]: df 
Out[19]: 
         0   1   2   3   4   5 
     Years                
Growth % One 0.449989 0.008239 -0.212202 -1.829215 0.609796 0.922987 
     Two -0.819815 0.726769 0.150591 1.851841 -0.639491 -0.637081 

In [26]: df.mean(axis=1) 
Out[26]: 
      Years 
Growth % One  -0.008401 
      Two  0.105469 
dtype: float64 

何ちょうど戻ったことpd.Seriesであることを、あなたは正しいデータをフェッチするために右のインデックスを使用することができます。

はこれを試してみてください:

df.mean(axis=1)['Growth %']['One'] 
df.mean(axis=1)['Growth %']['Two'] 

私はこれが役に立てば幸い!

+0

パーフェクト!!!!!!!ありがとう – teep

関連する問題