Vorrei rimuovere completamente un livello da un MultiIndex
Rimuovere un livello da un panda MultiIndex
import pandas as pd
tuples = [(0, 100, 1000),(0, 100, 1001),(0, 100, 1002), (1, 101, 1001)]
index_3levels=pd.MultiIndex.from_tuples(tuples,names=["l1","l2","l3"])
print index_3levels.levels
[Int64Index([0, 1], dtype=int64), Int64Index([100, 101], dtype=int64), Int64Index([1000, 1001, 1002], dtype=int64)]
vorrei estrarre i primi 2 livelli, per ottenere:
print index_2levels
MultiIndex
[(0, 100), (1, 101)]
droplevel
gocce il livello ma mantiene i duplicati:
print index_3levels.droplevel("l3")
MultiIndex
[(0, 100), (0, 100), (0, 100), (1, 101)]
In linea di principio potrei cal l unique
per rimuoverli. Tuttavia non sembra l'approccio giusto. Esiste un metodo più diretto?
Un'altra idea potrebbe essere un miglioramento per restituire un oggetto della stessa classe. –
Grazie, tuttavia, mi chiedo se esiste una soluzione migliore, che non richiede l'esecuzione di 'unique', che è piuttosto costoso. Dopotutto voglio solo estrarre 2 livelli del 3 nel 'MultiIndex', non creare un nuovo oggetto. –
univoco è in realtà piuttosto veloce qui; qual è il tuo obiettivo finale? – Jeff