2016-09-02 5 views
4

Я использую df.groupby():Доступ колонны с мультииндексным после использования панды GroupBy метода

g1 = df[['md', 'agd', 'hgd']].groupby(['md']).agg(['mean', 'count', 'std']) 

Он производит именно то, что я хочу!

  agd      hgd     
     mean count  std  mean count  std 
md              
-4 1.398350  2 0.456494 -0.418442  2 0.774611 
-3 -0.281814 10 1.314223 -0.317675 10 1.161368 
-2 -0.341940 38 0.882749 0.136395 38 1.240308 
-1 -0.137268 125 1.162081 -0.103710 125 1.208362 
0 -0.018731 603 1.108109 -0.059108 603 1.252989 
1 -0.034113 178 1.128363 -0.042781 178 1.197477 
2 0.118068 43 1.107974 0.383795 43 1.225388 
3 0.452802 18 0.805491 -0.335087 18 1.120520 
4 0.304824  1  NaN -1.052011  1  NaN 

Однако, теперь я хочу, чтобы получить доступ к столбцы объекта GroupBy как «нормальный» dataframe.

я тогда будет в состоянии: 1) вычислить ошибки на АГД и HGD означает 2) делают разброс участков на мд (ось х) против АГД среднего (HGD среднего) с соответствующими ошибками добавляется.

Возможно ли это? Возможно, играя с индексированием?

Заранее благодарен!

ответ

2

1) Вы можете переименовать столбцы и выполнить нормальные (избавятся от несколько индексирования)

g1.columns = ['agd_mean', 'agd_std','hgd_mean','hgd_std'] 

2) Вы можете сохранить мульти-индексирование и использовать оба уровень, в своей очереди (docs)

g1['agd']['mean count'] 
+0

Это помогло! Благодаря! Но как я могу построить md по оси x? Это не позволит мне переименовать значения -4 - +4 md:/.... –

+1

Если вы переименуете столбцы, md - ваш индекс, и вы можете получить доступ к его значениям 'g1.index.values'. Еще лучше, вы можете использовать 'g1.plot (...)', и он будет использовать индекс как ваши значения x по умолчанию (в зависимости от вида сюжета, который вы делаете). – benten

+0

Вы можете изменить значения индекса по g1.index = (список или массив или что-то еще). – benten

0

Возможно выполнить то, что вы ищете, и это называется transform. Вы найдете пример, который выполняет именно то, что вы ищете в документации pandas here.

Смежные вопросы