0Pricing
Learn AI with Python · Leçon

Fusion et jointure avancées

pd.merge() avec how, on, left_on/right_on, suffixes et merge_asof pour les jointures temporelles.

Fusion et jointure avancées est une leçon Learn AI with Python gratuite sur CoddyKit. Ceci est la leçon 3 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 Learn AI with Python, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Learn AI with Python comprend 4 leçons au total.

Combinaison de DataFrames

pd.merge joint deux DataFrames sur des clés communes, exactement comme une jointure SQL JOIN. La maîtrise des options how est essentielle pour travailler avec des données relationnelles.

import pandas as pd
left = pd.DataFrame({"id": [1, 2, 3], "name": ["a", "b", "c"]})
right = pd.DataFrame({"id": [2, 3, 4], "score": [90, 80, 70]})

Jointure interne (par défaut)

how="inner" ne conserve que les clés présentes dans les deux tableaux (BOTH). C’est le comportement par défaut.

print(pd.merge(left, right, on="id", how="inner"))
#    id name  score
# 0   2    b     90
# 1   3    c     80

Jointure gauche

how="left" conserve toutes les lignes du tableau de gauche ; les colonnes sans correspondance à droite deviennent NaN. C’est la jointure la plus courante en analyse de données.

print(pd.merge(left, right, on="id", how="left"))
#    id name  score
# 0   1    a    NaN
# 1   2    b   90.0
# 2   3    c   80.0

Jointure externe

how="outer" conserve toutes les clés des deux côtés et comble les lacunes avec NaN. Utilisez-la pour voir l’union complète des enregistrements.

print(pd.merge(left, right, on="id", how="outer"))
# includes id 1 (no score) and id 4 (no name)

Jointure sur des noms de colonnes différents

Lorsque les colonnes de clés portent des noms différents, utilisez left_on et right_on plutôt que on.

r2 = right.rename(columns={"id": "user_id"})
print(pd.merge(left, r2, left_on="id", right_on="user_id"))

Suffixes pour les colonnes communes

Si les deux tableaux partagent le nom d’une colonne qui n’est pas une clé, pandas ajoute _x et _y. Remplacez-les par suffixes pour plus de clarté.

a = pd.DataFrame({"id": [1], "val": [10]})
b2 = pd.DataFrame({"id": [1], "val": [99]})
print(pd.merge(a, b2, on="id", suffixes=("_old", "_new")))

La colonne indicatrice

indicator=True ajoute une colonne _merge indiquant la source de chaque ligne : uniquement à gauche, uniquement à droite ou des deux côtés. Elle est très utile pour auditer les jointures.

print(pd.merge(left, right, on="id", how="outer", indicator=True))
# _merge tells you where each row came from

Diagnostic des problèmes de jointure

Filtrer selon l’indicateur révèle rapidement les clés sans correspondance, cause fréquente de suppressions silencieuses de données.

m = pd.merge(left, right, on="id", how="outer", indicator=True)
print(m[m["_merge"] != "both"])   # rows that did not match

merge_asof pour les jointures temporelles

pd.merge_asof effectue une jointure sur la clé la plus proche plutôt que sur une correspondance exacte. Il est spécialement conçu pour aligner des séries temporelles, par exemple pour associer chaque transaction à la dernière cotation précédente. Les deux DataFrame doivent être triés selon la clé.

trades = pd.DataFrame({"time": [1, 3, 7], "price": [10, 11, 12]})
quotes = pd.DataFrame({"time": [0, 2, 5], "bid": [9, 10, 11]})
print(pd.merge_asof(trades, quotes, on="time"))

Sens de merge_asof

Par défaut, merge_asof regarde en arrière (dernière clé antérieure ou égale). Utilisez direction="forward" ou "nearest" pour modifier la règle de correspondance.

print(pd.merge_asof(trades, quotes, on="time", direction="nearest"))

Choisir la bonne jointure

Utilisez inner pour conserver uniquement les correspondances, left pour enrichir une table principale, outer pour obtenir l’union complète et merge_asof pour les jointures temporelles (sur une clé approximative).

Vérification rapide

Testez vos connaissances sur les jointures.

Récapitulatif

Boîte à outils des jointures :

  • how= inner / left / outer contrôle les clés conservées
  • on ou left_on/right_on pour les colonnes clés
  • suffixes désambiguïse les noms en double
  • indicator=True vérifie la source des lignes
  • pd.merge_asof pour les jointures temporelles sur la clé la plus proche (triez d’abord)

Questions Fréquemment Posées

La leçon « Fusion et jointure avancées » est-elle gratuite ?

Oui — le texte complet de « Fusion et jointure avancé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 Learn AI with Python, passe à CoddyKit PRO. Le cours Learn AI with Python comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Fusion et jointure avancées » ?

pd.merge() avec how, on, left_on/right_on, suffixes et merge_asof pour les jointures temporelles. Tu pratiques Learn AI with Python 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 Learn AI with Python ?

Aucune expérience préalable n'est requise. Learn AI with Python 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 3 sur 4.

Combien de temps prend la leçon « Fusion et jointure avancé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 Learn AI with Python ?

Oui. Chaque leçon Learn AI with Python 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. GroupBy et agrégation
  2. Tableaux croisés dynamiques et tableaux de contingence
  3. Fusion et jointure avancées
  4. Séries temporelles dans Pandas
← Retour à Learn AI with Python