Fusion, jointure et nettoyage des données
Combinez des DataFrames et gérez les valeurs manquantes avec rigueur.
Fusion, jointure et nettoyage des données est une leçon Python Academy gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Python Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Python Academy comprend 4 leçons au total.
pd.merge
pd.merge(left, right, on="key") joint deux DataFrames sur une colonne commune — de manière similaire à une jointure SQL JOIN.
import pandas as pd
users = pd.DataFrame({"id":[1,2,3],"name":["A","B","C"]})
orders = pd.DataFrame({"user_id":[1,1,2],"amount":[100,50,200]})
result = pd.merge(users, orders, left_on="id", right_on="user_id")
print(result)Types de jointure
Indiquez how="inner" (par défaut), "left", "right" ou "outer" pour contrôler les lignes conservées.
import pandas as pd
A = pd.DataFrame({"key":["a","b","c"],"val":[1,2,3]})
B = pd.DataFrame({"key":["b","c","d"],"x":[10,20,30]})
print(pd.merge(A, B, on="key", how="left")) # all of A
print(pd.merge(A, B, on="key", how="outer")) # all rowsdf.join
df.join(other) effectue la jointure sur l’index. Cette méthode est plus rapide et plus simple lorsque la jointure porte sur l’index plutôt que sur une colonne.
import pandas as pd
df1 = pd.DataFrame({"a":[1,2]}, index=["x","y"])
df2 = pd.DataFrame({"b":[3,4]}, index=["x","y"])
print(df1.join(df2))
# x: a=1 b=3
# y: a=2 b=4concat
pd.concat([df1, df2]) empile les DataFrames verticalement (axis=0) ou horizontalement (axis=1).
import pandas as pd
df1 = pd.DataFrame({"a":[1,2]})
df2 = pd.DataFrame({"a":[3,4]})
print(pd.concat([df1,df2], ignore_index=True))
# a: 1 2 3 4
# Horizontal:
df3 = pd.DataFrame({"b":[5,6]})
print(pd.concat([df1,df3], axis=1))Gestion des valeurs manquantes
Détectez les valeurs NaN avec isna()/notna(). Remplissez-les avec fillna(). Supprimez-les avec dropna().
import pandas as pd, numpy as np
df = pd.DataFrame({"a":[1,np.nan,3],"b":[np.nan,2,3]})
print(df.isna().sum()) # count nulls per column
df["a"] = df["a"].fillna(0)
df = df.dropna() # drop rows with any nullStratégies avec fillna
Remplissez les valeurs manquantes avec une constante, par propagation vers l’avant (ffill), par propagation vers l’arrière (bfill) ou avec la moyenne de la colonne.
import pandas as pd, numpy as np
df = pd.DataFrame({"val":[1, np.nan, np.nan, 4]})
print(df["val"].ffill()) # forward fill: 1 1 1 4
print(df["val"].bfill()) # back fill: 1 4 4 4
print(df["val"].fillna(df["val"].mean())) # fill with meanModification des types de données
Utilisez astype() pour convertir les types des colonnes. Utilisez pd.to_datetime() pour analyser les dates et pd.to_numeric avec errors="coerce" pour une conversion numérique sûre.
import pandas as pd
df = pd.DataFrame({"age":["25","30","35"],"date":["2024-01-01","2024-06-15","2024-12-31"]})
df["age"] = df["age"].astype(int)
df["date"] = pd.to_datetime(df["date"])
print(df.dtypes)Nettoyage des chaînes
L’accesseur .str de Pandas fournit des opérations vectorisées sur les chaînes : strip(), lower(), replace(), extract().
import pandas as pd
df = pd.DataFrame({"name":[" Alice "," bob","CAROL"]})
df["clean"] = df["name"].str.strip().str.title()
print(df["clean"]) # Alice / Bob / CarolRenommer et réordonner les colonnes
Renommez avec df.rename(columns={"old":"new"}). Réordonnez les colonnes en indexant avec une liste.
import pandas as pd
df = pd.DataFrame({"a":[1],"b":[2],"c":[3]})
df = df.rename(columns={"a":"alpha","b":"beta"})
df = df[["c","beta","alpha"]] # reorder
print(df.columns.tolist()) # ['c', 'beta', 'alpha']Détection des doublons
Recherchez les doublons avec duplicated() et supprimez-les avec drop_duplicates().
import pandas as pd
df = pd.DataFrame({"id":[1,2,1,3],"val":["a","b","a","c"]})
print(df.duplicated()) # [F F T F]
print(df[df.duplicated()]) # show duplicates
clean = df.drop_duplicates(subset=["id"])apply pour transformer les lignes et les colonnes
df.apply(func, axis=1) applique une fonction à chaque ligne. axis=0 l’applique à chaque colonne.
import pandas as pd
df = pd.DataFrame({"a":[1,2,3],"b":[4,5,6]})
# New column = row sum:
df["total"] = df.apply(lambda row: row["a"] + row["b"], axis=1)
print(df)Vérification rapide
Que fait df.fillna(method="ffill") ?
Récapitulatif
Utilisez pd.merge pour les jointures de style SQL et pd.concat pour empiler les données. Gérez les valeurs NaN avec isna(), fillna() et dropna(). Nettoyez les chaînes avec l’accesseur .str. Convertissez les types avec astype() et pd.to_datetime().
Questions Fréquemment Posées
La leçon « Fusion, jointure et nettoyage des données » est-elle gratuite ?
Oui — le texte complet de « Fusion, jointure et nettoyage des données » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Python Academy, passe à CoddyKit PRO. Le cours Python Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Fusion, jointure et nettoyage des données » ?
Combinez des DataFrames et gérez les valeurs manquantes avec rigueur. Tu pratiques Python Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Python Academy ?
Aucune expérience préalable n'est requise. Python Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.
Combien de temps prend la leçon « Fusion, jointure et nettoyage des données » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Python Academy ?
Oui. Chaque leçon Python Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Fondamentaux des Series et DataFrame
- Indexation, filtrage et masques booléens
- GroupBy, agrégation et tableaux croisés dynamiques
- Fusion, jointure et nettoyage des données