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