← retour aux snippets

pandas: MultiIndex créer et swap

Créer un MultiIndex et permuter les niveaux.

python pandas #pandas#multiindex#index

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_index réordonnent les niveaux efficacement.