← retour aux snippets

pandas: explode de listes

Décompacter des listes en lignes avec explode.

python pandas #pandas#explode#reshape

objectif

Décompacter des listes en lignes avec explode.

code minimal

import pandas as pd
df = pd.DataFrame({"id":[1,2], "tags":[["a","b"], ["c"]]})
out = df.explode("tags", ignore_index=True)
print(out.shape[0])

utilisation

import pandas as pd
df = pd.DataFrame({"x":[[1,2],[3]]})
print(df.explode("x")["x"].sum())

variante(s) utile(s)

import pandas as pd
df = pd.DataFrame({"id":[1], "pairs":[[(1,2),(3,4)]]})
print(df.explode("pairs").assign(a=lambda d: d["pairs"].str[0])["a"].tolist())

notes

  • Explode marche aussi sur colonnes de tuples/sets.