single past multiple multiindex may lexsort index impact groupby from data python pandas statistics multi-index

python - past - pandas xs



Sumando sobre un nivel multiindex en una serie de pandas (1)

Al usar el paquete Pandas en python, me gustaría sumar (marginar) más de un nivel en una serie con un índice múltiple de 3 niveles para producir una serie con un índice múltiple de 2 niveles. Por ejemplo, si tengo lo siguiente:

ind = [tuple(x) for x in [''ABC'', ''ABc'', ''AbC'', ''Abc'', ''aBC'', ''aBc'', ''abC'', ''abc'']] mi = pd.MultiIndex.from_tuples(ind) data = pd.Series([264, 13, 29, 8, 152, 7, 15, 1], index=mi) A B C 264 c 13 b C 29 c 8 a B C 152 c 7 b C 15 c 1

Me gustaría sumar la variable C para producir el siguiente resultado:

A B 277 b 37 a B 159 b 16

¿Cuál es la mejor manera en Pandas para hacer esto?


Si sabe que siempre desea agregarse a los dos primeros niveles, entonces esto es bastante fácil:

In [27]: data.groupby(level=[0, 1]).sum() Out[27]: A B 277 b 37 a B 159 b 16 dtype: int64