melt() transforme un tableau large (une colonne par période, par exemple) en format long (une ligne par observation), et pivot() fait l'opération inverse. Le format long est souvent préférable pour grouper, filtrer et tracer des graphiques. pivot exige des couples ligne/colonne uniques.
Exemple
long = df.melt(id_vars='produit', var_name='mois', value_name='ventes')