DataFrame.locメソッドを使用してMultiIndexから選択できるかどうかは誰にもわかりますか?次のDataFrameがあり、('at', 1)
、('at', 3)
、('at', 5)
などのインデックスで 'Dwell'列にある値にアクセスできるようにしたい(非-シーケンシャル)。
data.loc[['at',[1,3,5]], 'Dwell']
のような、通常のインデックスのdata.loc[[1,3,5], 'Dwell']
構文(3メンバーのDwell値のシリーズを返す)に似たようなことができるようになりたいです。
私の目的は、データの任意のサブセットを選択し、そのサブセットのみで何らかの分析を実行し、分析の結果で新しい値を更新することです。同じ構文を使用してこれらのデータの新しい値を設定する予定なので、この場合セレクターのチェーンは実際には機能しません。
これが、私が使用しているDataFrameのスライスです。
Char Dwell Flight ND_Offset Offset
QGram
at 0 a 100 120 0.000000 0
1 t 180 0 0.108363 5
2 a 100 120 0.000000 0
3 t 180 0 0.108363 5
4 a 20 180 0.000000 0
5 t 80 120 0.108363 5
6 a 20 180 0.000000 0
7 t 80 120 0.108363 5
8 a 20 180 0.000000 0
9 t 80 120 0.108363 5
10 a 120 180 0.000000 0
ありがとう!
バージョン0.14を使用している場合は、次のように.loc
にTupleを渡すだけで済みます。
df.loc[('at', [1,3,4]), 'Dwell']
cross-section インデックス作成を試してください:
In [68]: df.xs('at', level='QGram', drop_level=False).loc[[1,4]]
Out[68]:
Char Dwell Flight ND_Offset Offset
QGram
at 1 t 180 0 0.108363 5
4 a 20 180 0.000000 0