true single remove multiindex index drop pandas dataframe multi-index

pandas - single - ¿Cómo eliminar niveles de un marco de datos multi-indexado?



pandas remove index (2)

¡No necesita crear una nueva instancia de DataFrame! Puedes modificar el índice:

In [11]: df.index = df.index.droplevel(2) In [12]: df Out[12]: A 1 1 8 3 9

Por ejemplo, tengo:

In [1]: df = pd.DataFrame([8, 9], index=pd.MultiIndex.from_tuples([(1, 1, 1), (1, 3, 2)]), columns=[''A'']) In [2] df Out[2]: A 1 1 1 8 3 2 9

¿Hay una mejor manera de eliminar el último nivel del índice que esto?

In [3]: pd.DataFrame(df.values, index=df.index.droplevel(2), columns=df.columns) Out[3]: A 1 1 8 3 9


df.reset_index(level=2, drop=True) Out[29]: A 1 1 8 3 9