2013-09-08 4 views
13

Возможно ли группировать мультииндекс (2 уровня) панд данных на одном из уровней с несколькими индексами?группа мультииндекс pandas dataframe

Единственный способ, которым я знаю, это сбросить_индекс на мультииндексе, а затем снова установить индекс. Я уверен, что есть лучший способ сделать это, и я хочу знать, как это сделать.

ответ

17

Да, используйте параметр level. Посмотрите here. Пример:

In [26]: s 

first second third 
bar doo  one  0.404705 
       two  0.577046 
baz bee  one  -1.715002 
       two  -1.039268 
foo bop  one  -0.370647 
       two  -1.157892 
qux bop  one  -1.344312 
       two  0.844885 
dtype: float64 

In [27]: s.groupby(level=['first','second']).sum() 

first second 
bar doo  0.981751 
baz bee  -2.754270 
foo bop  -1.528539 
qux bop  -0.499427 
dtype: float64 
+0

Это работает в Python 3? Я получаю ошибку TypeError: unorderable types: list()> int() – toasteez

+0

работает для меня в python 3 – Selah