2017-02-10 8 views
0

Iフォーム測定が行われたとmeasurmentsの結果スポット(A、B又はC)(0,1、代表スライスpandas.DataFrameの第二のマルチインデックス

   "a"   "b"   "c"  #first level index 
      0, 1, 2  0, 1, 2  0, 1, 2  #second level index 
index 
0   1,2,3   6,7,8  5,3,4 
1   2,3,4   7,5,4  9,2,5 
2   3,4,5   4,5,6  0,4,5 
... 

のパンダのデータフレームを有します2)この場所で起こった。私は次の操作を実行したい

  • サンプルのスライスを選択する(計測0で各スポットに言う最初の測定)
  • 各i番目の測定値を意味する(平均値(「A」 [a] [1]、 "b" [1]、 "c" [1])...)
[0]、 "b" [0]、 "c" [0]

私はパンダMultiindexのドキュメントのハングアップを取得しようとしましたが、第2レベルのスライスを管理していません。

この

は、列のインデックスです:

MultiIndex(levels=[['a', 'b', 'c', ... , 'y'], [0, 1, 2, ... , 49]], 
     labels=[[0, 0, 0, ... , 0, 1, 1, 1, ... 1, ..., 49, 49, 49, ... 49]]) 

そして

df[:][0] 

を使用して、インデックス

Float64Index([204.477752686, 204.484664917, 204.491577148, ..., 868.723022461], dtype='float64', name='wavelength', length=43274) 

df.iloc[0] 
(インデックスに0ではない)のキー・エラーを生成します

水平スライス

0 "a":(1,2,3), "b":(6,7,8), "c":(5,3,4) 

を返しますが、私は任意の助け

PS用

"a":(1,2,3), "b":(6,7,4), "c":(5,9,0) 

THXがしたい:バージョン:パンダ-0.19、のpython-3.4

+0

私は、各スポットが同じ量の測定値を持っていれば、シリーズの各x番目をポーリングできると思います。しかし、そうではありません。一部のスポットは49の測定値を有し、一部は47のみ(一部は捨てられている)である。したがって、私は、測定の真の値を表すので、第2の指標を明示的に扱いたいと思います。 –

答えて

0

トリックは軸を指定することでした...

df.loc(axis=1)[:,0] 

は、各スポットの0回目の測定を提供する。 2番目のレベルのインデックスで整数を使用しているので、実際にラベル "0"が得られたのか、DataFrameの0番目の測定だけであるのか分かりません。

私の使用例では、実際にはこれで十分です。

+0

0回目の測定の平均値を得るには、df.loc(axis = 1)[:, 0] .T.mean()を最初に転置する必要があります。 –

関連する問題