← retour aux snippets

pandas: stack/unstack niveaux

Basculer entre colonnes et index via stack/unstack.

python pandas #pandas#stack#unstack

objectif

Basculer entre colonnes et index via stack/unstack.

code minimal

import pandas as pd

df = pd.DataFrame({"g":["a","a","b"], "k":[1,2,1], "v":[10,20,30]}).set_index(["g","k"])
wide = df["v"].unstack("k")
print(wide.shape)

utilisation

import pandas as pd

df = pd.DataFrame({"g":["a","a","b"], "k":[1,2,1], "v":[10,20,30]}).set_index(["g","k"])
print(df["v"].unstack().stack().equals(df["v"]))

variante(s) utile(s)

import pandas as pd

df = pd.DataFrame({"g":["a","a","b"], "k":[1,2,1], "v":[10,20,30]})
piv = df.pivot(index="g", columns="k", values="v")
print(piv.fillna(0).sum().sum() >= 0)

notes

  • Contrôle fin avec level sur MultiIndex.