objectif
Créer un MultiIndex et permuter les niveaux.
code minimal
import pandas as pd
tuples = [("a",1),("a",2),("b",1)]
mi = pd.MultiIndex.from_tuples(tuples, names=["g","k"])
df = pd.DataFrame({"v":[10,20,30]}, index=mi)
print(df.swaplevel(0,1).sort_index().to_dict())
utilisation
import pandas as pd
df = pd.DataFrame({"g":["a","a","b"], "k":[1,2,1], "v":[1,2,3]}).set_index(["g","k"])
print(df.unstack("k").stack("k").equals(df))
variante(s) utile(s)
import pandas as pd
df = pd.DataFrame({"g":["a","a","b"], "k":[1,2,1], "v":[1,2,3]}).pivot_table(index="g", columns="k", values="v")
print(isinstance(df, pd.DataFrame))
notes
swaplevel+sort_indexréordonnent les niveaux efficacement.