0Pricing
Python Academy · Leçon

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 rows

df.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=4

concat

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 null

Straté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 mean

Modification 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 / Carol

Renommer 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

  1. Fondamentaux des Series et DataFrame
  2. Indexation, filtrage et masques booléens
  3. GroupBy, agrégation et tableaux croisés dynamiques
  4. Fusion, jointure et nettoyage des données
← Retour à Python Academy