2017-03-15 8 views

答えて

1

あなたがして選択することができxs第一および集計max

df = df.xs('A', level=1).groupby(level=0).max().reset_index() 
print (df) 
    DATE VALUE 
0 1-2002  3 
1 2-2002  8 

L = df.xs('A', level=1).groupby(level=0)['VALUE'].max().tolist() 
print (L) 
[3, 8] 

旧ソリューション:

Iは、第1および第2のインデックスと集計によるフィルタリングのためのget_level_valuesboolean indexing、その後groupbyあなたが最初だと思いますmax

df = df[df.index.get_level_values('LETTER') == 'A'] 
df = df.groupby(level=[0,1]).max() 
print (df) 
       VALUE 
DATE LETTER  
1-2002 A   3 
2-2002 A   8 

df = df[df.index.get_level_values('LETTER') == 'A'] 
df = df.groupby(level=[0,1]).max().reset_index() 
print (df) 
    DATE LETTER VALUE 
0 1-2002  A  3 
1 2-2002  A  8 
+0

パーフェクト!うまくいった。 –

0

だからAのためだけの最大値を取得します

df = df.reset_index() 
df = df[(df['LETTER'] == 'A')].groupby(['DATE', 'LETTER']).max() 

そして取得するために、そのリスト内の数字:

max_A = df[(df['LETTER'] == 'A')].groupby(['DATE', 'LETTER']).max()['VALUE'].tolist() 
関連する問題