objectif
Convertir un DataFrame large en format long.
code minimal
import pandas as pd
df = pd.DataFrame({"id":[1,2], "a":[10,20], "b":[30,40]})
long = df.melt(id_vars=["id"], var_name="var", value_name="val")
print(long.sort_values(["id","var"]).to_dict(orient="records"))
utilisation
import pandas as pd
df = pd.DataFrame({"t":[1,2], "x1":[5,6], "x2":[7,8]})
print(pd.melt(df, id_vars=["t"]).shape)
variante(s) utile(s)
import pandas as pd
print(pd.wide_to_long(pd.DataFrame({"id":[1,1], "x_2024":[1,2], "x_2025":[3,4]}), stubnames="x", i="id", j="year", sep="_").reset_index().shape)
notes
- Utile avant un groupby/agg ou une visualisation.