Par Elisha Bajemon, Ingénieur IA chez TW3 Partners. Dernière mise à jour : 10 novembre 2026.

En bref

Rapprocher des tableaux peut multiplier ou perdre des lignes : contrôlez les correspondances avant de confier leurs données à un agent de rédaction. Ici, une jointure désigne l’assemblage de lignes à partir des colonnes choisies pour les rapprocher. La documentation pandas, sans date de publication indiquée, décrit les contrôles de correspondance et d’unicité disponibles. TW3 recommande de fixer les règles métier, puis de produire une liste des écarts avant rédaction. Le responsable des données peut ainsi décider quels faits admettre dans le document. La procédure ci-dessous constitue une proposition de conception, distincte de l’implémentation décrite dans la recherche TW3.

1. Quelles clés désignent réellement le même fait ?

Les colonnes retenues doivent identifier un même concept, pour une même période et un même périmètre. Une clé composite désigne une combinaison de colonnes utilisée pour reconnaître les correspondances entre tableaux. Sa définition doit précéder le choix de l’outil de rapprochement.

Le tutoriel xBRL-JSON de XBRL International, publié le 11 août 2021, décrit un fait comme une valeur associée à des dimensions qui en définissent le sens. Il distingue notamment le concept, l’entité et la période ; celle-ci peut correspondre à un instant ou à une durée. L’unité précise comment la valeur d’un fait numérique est exprimée. Chaque fait possède aussi un identifiant dans le rapport. Ces propriétés donnent un appui à la conception de clés métier, sans imposer le format XBRL aux tableaux à rapprocher.

Dans la procédure proposée, conservez séparément l’identifiant de la ligne source et la clé métier. Le premier permet de retrouver l’enregistrement d’origine ; la seconde exprime pourquoi le rapprochement est admissible. Ajoutez à cette clé les dimensions nécessaires au périmètre concerné. Une unité différente appelle une règle explicite de comparaison ou de conversion avant admission du fait.

Préparez un dictionnaire indiquant, pour chaque colonne de rapprochement, sa définition, son format attendu et la règle applicable aux valeurs manquantes. Faites valider le sens des périodes et des périmètres par le responsable métier. Dans pandas, renseignez explicitement on, ou left_on et right_on si les noms diffèrent : la documentation de merge, sans date de publication indiquée, précise que, sans clé indiquée et hors jointure sur index, les colonnes communes servent par défaut au rapprochement.

2. Quelle cardinalité attendre de la jointure ?

La cardinalité attendue exprime combien de lignes peuvent correspondre à une même clé de chaque côté. Elle traduit une règle métier à écrire avant l’assemblage. Dans la documentation pandas de merge, sans date de publication indiquée, le paramètre validate permet de contrôler l’unicité des clés selon cette attente.

Relation attendueValeur de validateContrôle documenté
Un à unone_to_oneClés uniques dans chaque tableau
Plusieurs à unmany_to_oneClés uniques dans le tableau de droite
Un à plusieursone_to_manyClés uniques dans le tableau de gauche
Plusieurs à plusieursmany_to_manyRelation autorisée sans contrôle d’unicité

Le guide pandas sur les rapprochements, sans date de publication indiquée, explique la multiplication des lignes : lorsqu’une combinaison de clés se répète dans chaque tableau, le résultat contient toutes les combinaisons des lignes associées. C’est le produit cartésien des correspondances. Une répétition en sortie peut donc venir de l’assemblage lui-même.

Choisissez la relation à partir du rôle de chaque tableau. Dans une hypothèse d’enrichissement, plusieurs lignes métier peuvent recevoir un attribut provenant d’une référence unique : la relation attendue est alors plusieurs à un. Inscrivez cette attente dans le traitement avec validate="many_to_one".

En cas d’échec, examinez les clés répétées et leur signification avant de modifier la règle. Passer à many_to_many supprime ce contrôle. Si les répétitions sont légitimes, documentez la relation et le traitement attendu des lignes obtenues. Si elles signalent une clé incomplète, corrigez sa définition. Une unicité conforme reste un contrôle structurel : le sens de la correspondance dépend du dictionnaire métier.

3. Comment repérer les lignes sans correspondance ?

Conservez les lignes non rapprochées dans un résultat de contrôle explicite. Selon la documentation pandas de merge, sans date de publication indiquée, le paramètre how détermine quelles clés entrent dans le résultat. Son choix engage donc le périmètre transmis à la suite du traitement.

JointureParamètreClés conservées
InterneinnerClés présentes dans chaque tableau
Externe complèteouterEnsemble des clés des tableaux
À gaucheleftClés du tableau de gauche
À droiterightClés du tableau de droite

Pour préparer le diagnostic, utilisez une jointure externe complète après contrôle des clés et de leur cardinalité. Avec indicator=True, pandas ajoute la colonne _merge. La valeur both indique une clé présente de chaque côté ; left_only et right_only identifient les clés présentes d’un seul côté. Exportez ces catégories avec les identifiants des lignes sources.

Une jointure interne convient lorsque le périmètre admis se limite effectivement aux correspondances communes. Elle écarte les autres clés du résultat : un indicateur ajouté à ce seul résultat ne restitue donc pas la liste des lignes exclues. Préservez le diagnostic complet avant cette sélection.

Pour un enrichissement piloté par le tableau de gauche, une jointure à gauche conserve son périmètre de clés. Vérifiez ensuite quelles informations obligatoires restent absentes. L’appartenance à both atteste une correspondance de clés ; l’admission exige aussi les champs prévus par le contrat métier. Archivez les lignes admises et les lignes écartées dans des sorties distinctes, chacune reliée aux entrées.

4. Que faire des clés nulles et des doublons ?

Isolez les clés incomplètes avant fusion et examinez les répétitions dans leur contexte métier. L’avertissement de pandas sur merge, sans date de publication indiquée, précise que des lignes dont les clés sont nulles peuvent être rapprochées entre elles. Ce comportement diffère du comportement SQL habituel.

Dans la méthode proposée, une valeur manquante dans une colonne obligatoire de la clé conduit à une mise à l’écart explicite. Conservez la ligne originale et indiquez le champ à compléter. Évitez de remplacer indistinctement ces absences par un libellé commun destiné à faire réussir la fusion : vous donneriez une même identité à des enregistrements dont le lien reste à établir.

Traitez séparément les répétitions de clés. Comparez les dimensions qui composent l’identité métier, puis les valeurs et les références d’origine. Une répétition peut appeler un complément de clé, une relation plusieurs à un assumée, ou une décision sur des copies du même fait. La décision de suppression doit conserver la trace des lignes concernées et le motif retenu.

Une règle de dédoublonnage doit préciser les colonnes comparées et la manière de conserver la provenance. Lorsqu’une même clé porte des valeurs incompatibles, transmettez le groupe à l’arbitrage des données. Maintenez les lignes concernées à l’écart de la rédaction jusqu’à résolution. Rejouez ensuite les contrôles d’unicité sur les données corrigées pour vérifier que la règle choisie correspond bien au résultat.

5. Quels invariants vérifier avant le registre ?

Vérifiez que chaque ligne attendue possède un devenir explicite et que chaque fait admis respecte le contrat métier. Un invariant désigne ici une condition qui doit rester vraie au cours du traitement. Les contrôles suivants constituent la proposition de TW3 pour préparer les données destinées au registre, la liste structurée des faits utilisables par la rédaction.

L’annexe A de la prépublication de Gibert, Despujols et Rochet déposée sur arXiv le 30 septembre 2026 décrit le pipeline d’origine : la collecte aboutit à un bloc de données et à un contrat fixant ce que les étapes suivantes peuvent utiliser sans le deviner. Un moteur de calcul produit ensuite un fichier de rapprochement et un journal d’audit. Cet ancrage justifie de formaliser le passage entre préparation et rédaction ; les contrôles de jointure détaillés ici sont des propositions complémentaires.

Avant l’admission, contrôlez les conditions suivantes :

  • Les composantes obligatoires de la clé sont renseignées et leur format respecte le dictionnaire.
  • L’unicité exigée par la relation est vérifiée du côté prévu.
  • Chaque identifiant source attendu apparaît parmi les lignes admises ou parmi les écarts expliqués.
  • Chaque ligne produite reste reliée à ses lignes sources et à la règle de rapprochement.
  • Les champs obligatoires du fait sont présents, avec les unités et périodes attendues.

Comparez les ensembles d’identifiants avant et après transformation, puis examinez leurs répétitions. Un total de lignes identique ne constitue pas, à lui seul, le contrôle proposé : il faut aussi connaître les identifiants conservés, écartés et réutilisés. Fixez les conditions d’arrêt dans le contrat métier. Une donnée complémentaire facultative peut rester absente si ce statut est prévu ; une information indispensable maintient le fait en attente.

6. Comment remettre les écarts au responsable des données ?

Remettez un rapport qui permet de retrouver la ligne, de comprendre l’écart et de consigner la décision. Dans la procédure proposée, ce rapport accompagne chaque exécution du rapprochement. Il conserve les fichiers d’entrée concernés, la définition de la clé et la relation attendue pour que la personne chargée de corriger dispose du contexte nécessaire.

Pour chaque écart, prévoyez les champs suivants : catégorie, clé métier, identifiants sources, règle enfreinte, responsable de résolution, décision et état du traitement. Distinguez les clés incomplètes, les répétitions incompatibles avec l’unicité attendue, les absences de correspondance et les champs obligatoires manquants. Ajoutez les valeurs d’origine utiles à la décision, en conservant leur provenance.

Le responsable peut demander une correction à la source, accepter une absence prévue par le contrat ou préciser le périmètre. Enregistrez son arbitrage avant de relancer le rapprochement. Une correction de clé appelle une nouvelle exécution des contrôles de cardinalité et de couverture : la décision porte sur le groupe de correspondances concerné.

Préparez enfin une sortie contenant seulement les faits admis et leurs références. Pour les éléments en attente, indiquez quelles parties du document en dépendent et doivent rester bloquées. Archivez ensemble le rapport d’écarts, les décisions et la sortie admise. La remise au rédacteur devient ainsi une décision traçable sur un ensemble identifié de données, avec les conditions de reprise nécessaires.

FAQ

Pourquoi contrôler une jointure avant rédaction ?
Le guide pandas sur les rapprochements, sans date de publication indiquée, décrit comment une jointure peut écarter des clés ou multiplier les lignes associées. Le contrôle doit donc précéder la transmission des faits à l’agent. Écrivez la relation attendue et conservez la liste des lignes admises ou écartées pour permettre une décision sur le périmètre du document.

À quoi sert validate ?
Selon la documentation pandas de merge, sans date de publication indiquée, ce paramètre vérifie l’unicité des clés dans le tableau de gauche, de droite ou dans chacun, selon la relation déclarée. La valeur many_to_many autorise une relation plusieurs à plusieurs sans effectuer ce contrôle. Le choix de la clé métier et la vérification des champs obligatoires restent à organiser séparément.

Comment isoler les lignes non rapprochées ?
Utilisez une jointure externe complète avec indicator=True pour distinguer les clés communes de celles présentes d’un seul côté. Conservez left_only et right_only avec les identifiants des lignes sources. Faites examiner ces listes avant de sélectionner le périmètre transmis à la rédaction, conformément à la méthode proposée.

Les clés nulles se comportent-elles comme en SQL ?
Pandas avertit que les clés nulles peuvent se correspondre, contrairement au comportement SQL habituel. La procédure proposée isole les lignes dont une composante obligatoire de la clé manque. Leur réintégration dépend d’une correction ou d’une décision métier explicite, suivie d’un nouveau contrôle du rapprochement.

TW3 utilise-t-il pandas dans ce pipeline ?
La prépublication de Gibert, Despujols et Rochet déposée sur arXiv le 30 septembre 2026 ne documente pas cet usage. Son annexe A décrit le bloc de données, le contrat et le fichier de rapprochement du pipeline d’origine. Les paramètres pandas et le rapport d’écarts présentés ici constituent une méthode complémentaire proposée pour préparer les données avant leur admission dans un registre.

Pour aller plus loin

Sources