2016-05-22 1 views
4

私の質問はHow to check if a column exists in Pandasに似ていますが、マルチインデックスの列の場合です。パンダ - 複数のインデックスの列が存在するかどうかを確認する方法

私は、別のファイルに由来する列名を使用してマルチインデックス列データフレーム内の値を処理しようとしています。そのため、列が存在するかどうかを確認する必要があります。代表的な例は以下である:上記の例でdf1[0][0.1]にアクセス

import pandas as pd 
from numpy.random import randint,randn 

df = pd.DataFrame({ 'A': [randint(0,3) for p in range(0,12)],'B': [0.1* randint(0,3) for p in range(0,12)], 
     'C': [0.1*randint(0,3) for p in range(0,12)],'D': randn(12), 
    }) 

df1 = df.groupby(['A','B','C']).D.sum().unstack(-1) 
df1 = df1.T 
df1 
A   0     1        2   
B   0.0  0.2  0.0  0.1  0.2  0.0  0.1 
C                   
0.0  NaN  NaN  NaN 0.845316  NaN 0.555513  NaN 
0.1  NaN 0.139371  NaN  NaN  NaN  NaN -0.260868 
0.2 5.002509  NaN 0.637353 0.438863 0.943098  NaN  NaN 

df1[1][0.1] 
C 
0.0 0.845316 
0.1   NaN 
0.2 0.438863 

キーエラーになります。処理中に存在しない列をスキップできるように、マルチインデックス列が存在するかどうかを確認するにはどうすればよいですか?

ありがとうございます!

答えて

8

あなたはタプルの配列のようなマルチインデックスと考えることができ、そのようにアクセスすることができますように

df1[(0, 0.1)] 

とテスト:

(0, 0.1) in df1.columns: 
+0

作品!非常に有用な洞察に感謝します。 – kip6000

関連する問題