Partie 3 · Concaténation et tri
Empiler, juxtaposer et trier
Concaténer assemble des tables sans clé de jointure : pd.concat([df1, df2, ...]).
| Option | Effet |
|---|---|
axis=0 (défaut) | empile verticalement (ajout de lignes) ; colonnes similaires attendues |
axis=1 | place côte à côte (ajout de colonnes) ; index alignés |
ignore_index=True | nouvel index séquentiel 0, 1, 2… au lieu de garder les anciens |
Si les colonnes diffèrent (par exemple df_ventes_jour3 a une colonne de plus), les cases sans correspondance sont remplies par des NaN : c'est la question « Que constatez-vous ? » du TP. En Python pur, empiler = jour1 + jour2 (listes), et les colonnes manquantes se complètent avec l.get(col).
Vérifie que tu as compris
concat et merge ?Vérifie que tu as compris
ignore_index=True dans concat ?À toi de coder
Trier : sort_values
.sort_values(by=[...], ascending=[...]) trie par une ou plusieurs colonnes ; ascending=True est le défaut. On trie pour remettre les observations dans un ordre cohérent (avant un export) ou pour visualiser les extrêmes après un describe. Tri multiple : « d'abord client_id croissant, puis montant décroissant ».
En Python pur : sorted(lignes, key=lambda l: (l["client_id"], -l["montant"])). Le signe moins inverse l'ordre d'une colonne numérique. Pour du texte décroissant, on fait deux tris successifs (Python trie de façon stable) ou reverse=True si toutes les colonnes vont dans le même sens.
À toi de coder