2016-10-14 8 views
1

私は200列のMultiIndexデータフレームを持っています。私はそれから特定の列を選択したいと思います。 DFは私のデータフレームの一部であると仮定しますパンダMultiIndexデータフレームから特定の列を選択

df= 
         a        b 
         l  h  l  h  l  h  l  
         cold hot hot cold cold  hot hot 
2009-01-01 01:00:00 0.1  0.9 0.4 0.29 0.15  0.6 0.3 
2009-01-01 02:00:00 0.1  0.8 0.35 0.2  0.15  0.6 0.4 
2009-01-01 03:00:00 0.12 0.7 0.3 0.23 0.23  0.8 0.3 
2009-01-01 04:00:00 0.1  0.9 0.33 0.24 0.15  0.6 0.4 
2009-01-01 05:00:00 0.17 0.9 0.41 0.23 0.18  0.75 0.4 

私はこの列の値を選択したい[H、ホット]。

私の出力は次のようになります。

df['h','hot']= 
         a  b 
2009-01-01 01:00:00 0.9 0.6 
2009-01-01 02:00:00 0.8 0.6 
2009-01-01 03:00:00 0.7 0.8 
2009-01-01 04:00:00 0.9 0.6 
2009-01-01 05:00:00 0.9 0.75 

私はそれを選択することができる方法上の任意の指導をお願い申し上げます。

+0

私は 'DFと思い[ 'B'、 'H'、 'ホット']' 'ちょうどリスト(df.columnsを)'投稿してください – EdChum

+0

階層列のためにここに動作するはずです。これは、間違ったスペースがあるかどうかを確認するのに役立ちます... – unutbu

+0

'df ['b'、 'h'、 'hot']'は 'df.info()'と ' print(df.columns.tolist() ')を使って実際の列名が何であるか確認してください – EdChum

答えて

0

このお試しください:

dataframe= pd.DataFrame() 
dataframe["temp"] = df["b"]["h"]["hot"] 

DFを - あなたが列を望むよう、あなたのデータフレームは、マルチインデックス・スライシングについて

1

ですがsort_index(axis=1)を使用して最初にソートする必要があり、あなたがしてなくて、関心のCOLSを選択することができますエラー:

In [12]: 
df = df.sort_index(axis=1) 
df['a','h','hot'] 

Out[12]: 
0 
2009-01-01 01:00:00 0.9 
2009-01-01 02:00:00 0.8 
2009-01-01 03:00:00 0.7 
2009-01-01 04:00:00 0.9 
2009-01-01 05:00:00 0.9 
Name: (a, h, hot), dtype: float64 
+0

ありがとう、ありがとう、それは正確に私が探していたものです。私は "並べ替え"せずにこのコマンドを試していた、と言ったように私はエラーがあります。 – zhr

+0

'sort_values'は' Index''、 'Series'、' DataFrame'などのメソッドを扱います。 – EdChum

+0

ありがとうございます。しかし、 "sort_values"リード値を移動せずに列名をソートする(間違ったラベル)。つまり、df [ 'a'、 'h'、 'hot']、df ['a'、 'l'、 'cold']のような別の値が得られます。この問題を解決するために私を導くなら、私は感謝します。 – zhr

関連する問題