Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :
Sujets que vous pourriez aussi aimer :Comparer deux tableaux en Python
Ce n'est pas une fabuleuse
méthode Python que nous allons présenter là . Elle se nomme
compare. Elle permet de confronter visuellement les colonnes de plusieurs tableaux pour les comparer. Mais combinée à d'autres
méthodes Python, à n'en point douter, elle peut livrer des résultats redoutables.
Classeur Excel à télécharger
Nous proposons d'appuyer l'étude sur un
classeur Excel existant.
Nous découvrons deux petits tableaux de personnes disposés côte à côte. Sur la droite, une grille d'extraction attend l'analyse.
Les DataFrames
La
méthode compare de
Python confronte les
DataFrames ligne à ligne, ce qui signifie que seules les différences aux mêmes positions sont révélées. Les lignes identiques mais à des positions différentes ne sont pas considérées comme étant les mêmes.
- Cliquer sur la première case grise au-dessus du premier tableau pour sélectionner la cellule B1,
- Réaliser le raccourci clavier CTRL + ALT + MAJ + P pour activer Python,
- Débuter la syntaxe comme suit : tb1=,
tb1 est le nom que nous souhaitons attribuer au
premier DataFrame devant représenter le premier tableau.
- Dès lors, sélectionner toutes les données du premier tableau, avec les entêtes,
Cette action conduit à la syntaxe suivante :
tb1=xl("B3:C21",headers=True),
- Valider la formule par le raccourci clavier CTRL + Entrée,
Nous obtenons bien un
DataFrame. Et si vous cliquez sur son préfixe
PY, vous obtenez un aperçu des données qu'il embarque.
- Cliquer sur la seconde case grise au-dessus du second tableau pour sélectionner la cellule E1,
- Réaliser le raccourci clavier CTRL + ALT + MAJ + P pour activer Python,
- Débuter la syntaxe comme suit : tb2=,
- Sélectionner toutes les données du deuxième tableau, avec les entêtes,
Cette action conduit à la syntaxe suivante :
tb2=xl("E3:F21",headers=True),
- Valider la formule par le raccourci clavier CTRL + Entrée,
Le second
DataFrame est désormais en place. Comme nous l'avons dit, c'est sur ces deux objets représentatifs des deux tableaux que nous allons appliquer la
méthode Python compare qu'il nous reste encore à découvrir.
Confronter les deux tableaux
Il est donc maintenant temps de dégainer cette
méthode compare sur ces
deux objets Python.
- Cliquer sur la première case de la grille d'extraction pour sélectionner la cellule H3,
- Réaliser le raccourci clavier CTRL + ALT + MAJ + P pour activer Python,
- Bâtir alors la syntaxe suivante : tb1.compare(tb2),
- Puis, valider la formule par le raccourci clavier CTRL + Entrée,
Nous obtenons un nouveau
DataFrame mais cette fois, nous souhaitons exploiter visuellement ces données.
- A gauche de la barre de formule, cliquer sur la flèche orientée vers le bas,
- Dans les propositions, choisir Valeur Excel,
Nous obtenons un tableau restreint en nombre de lignes, semblant indiquer que des rangées identiques ont été décelées et supprimées par cette
méthode Python compare. Mais ce tableau déborde d'une colonne en raison de celle des positons d'origine qui apparaît en préfixe.
- Dans la barre de formule, cliquer à la toute fin de la syntaxe,
- Appeler la méthode reset_index comme suit : tb1.compare(tb2).reset_index(drop=True),
Nous l'avons expliquée à l'occasion du sujet précédent. Avec le paramètre drop réglé à True, elle permet de ne pas ajouter cette colonne des indices en préfixe.
- Valider la nouvelle formule par le raccourci clavier CTRL + Entrée,
Cette fois c'est bien une comparaison stricte que nous obtenons selon les règles que nous avons expliquées en préambule.
Dans la mesure où des lignes strictement identiques se trouvaient sur la même position entre les deux tableaux, elles sont supprimées à l'extraction. En revanche, lorsque les positions ne coïncidaient pas, elles persistent. Mais comme les colonnes sont rapprochées par paires, elles sont plus faciles à comparer visuellement ou à l'aide d'une mise en forme conditionnelle pourquoi pas.
Important : Les valeurs "self" et "other" que vous voyez après avoir utilisé la
méthode compare sont des indicateurs ajoutés par pandas pour montrer les
différences entre les deux DataFrames. Voici ce qu'elles signifient :
- self : représente les valeurs du premier DataFrame (tb1).
- other : représente les valeurs du deuxième DataFrame (tb2).