← retour aux snippets

pandas: crosstab normalisé + marges

Tableau croisé avec normalisation et totaux.

python pandas #pandas#crosstab#pivot

objectif

Tableau croisé avec normalisation et totaux.

code minimal

import pandas as pd

df = pd.DataFrame({"sex":["f","m","m","f"], "survived":[1,0,1,1]})
tab = pd.crosstab(df["sex"], df["survived"], normalize="index", margins=True)
print(tab.round(2).to_dict())

utilisation

import pandas as pd

df = pd.DataFrame({"a":[1,1,2,2], "b":[1,2,1,2]})
print(pd.crosstab(df["a"], df["b"]).to_dict())

variante(s) utile(s)

import pandas as pd

df = pd.DataFrame({"a":[1,1,2], "b":[1,1,2], "w":[1,2,1]})
print(pd.crosstab(df["a"], df["b"], values=df["w"], aggfunc="sum").to_dict())

notes

  • normalize peut être ‘index’, ‘columns’.