formateur informatique

Exclure les lignes différentes par formule Python

Accueil  >  Bureautique  >  Excel  >  Excel Avancé  >  Exclure les lignes différentes par formule Python
Livres à télécharger


Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :


Inscription Newsletter    Abonner à Youtube    Vidéos astuces Instagram
Sujets que vous pourriez aussi aimer :


Exclure les lignes différentes

Dans le volet précédent, nous avons découvert la méthode Python compare. Ici, c'est une autre méthode qui s'invite. Elle est un peu dans le même registre pour comparer plusieurs tableaux Excel. Elle se nomme join. Elle permet de réunir deux tableaux tout en excluant les lignes qui diffèrent. En d'autres termes, elle réunit et consolide les données communes.

Classeur Excel à télécharger
Nous suggérons d'appuyer l'étude sur un classeur Excel existant. 2 tableaux Excel à comparer par formule Python

Nous trouvons deux tableaux Excel à comparer. Chacun est encapsulé dans un DataFrame Python en cellules B3 et E3 selon les syntaxes respectives suivantes : tab1=xl("B5:C23", headers=True) et tab2=xl("E5:F23", headers=True). Vous pouvez consulter les données qu'ils embarquent en cliquant sur l'un ou l'autre préfixe [PY]. Sur la droite, une grille vide est en attente de l'extraction des lignes communes.

L'index directeur
Pour cette extraction, nous devons utiliser les colonnes des noms comme index directeurs. Les différences se feront ainsi sur les colonnes des prénoms lorsque les noms sont identiques. Pour cela, nous devons utiliser la méthode set_index sur les deux DataFrame.
  • Cliquer sur la case au-dessus de la grille d'extraction pour sélectionner la cellule H5,
  • Réaliser le raccourci clavier CTRL + ALT + MAJ + P pour activer Python,
  • Débuter la syntaxe comme suit : tab1.set_index("Nom", inplace=True),
  • Enfoncer la touche Entrée pour passer à la ligne,
  • Puis, réitérer sur le deuxième DataFrame : tab2.set_index("Nom", inplace=True),
  • Valider la formule par le raccourci clavier CTRL + Entrée,
Objet Python vide dans formule Excel

En réponse à ce stade, nous obtenons un objet vide ce qui est tout à fait logique. Nous l'avons dit, nous venons de définir l'index directeur (la colonne Nom) pour la réunion que nous allons opérer. C'est le paramètre inplace réglé à True qui indique que cette colonne devient l'index du DataFrame.

Réunir les tableaux
Maintenant, il est temps de découvrir la méthode Python join.
  • Double cliquer sur la cellule H5 pour afficher son code,
  • Cliquer à la toute fin de la syntaxe pour y placer le point d'insertion,
  • Enfoncer la touche Entrée pour passer à la ligne,
  • Puis, ajouter la ligne suivante : tab1.join(tab2, lsuffix="_tab1", rsuffix="_tab2"),
  • Valider alors la formule par le raccourci clavier CTRL + Entrée,
Nous obtenons un DataFrame qui réalise vraisemblablement la réunion des deux tableaux. Les trois paramètres sont obligatoires dans cette syntaxe. Le premier pour définir le DataFrame (tab2) à joindre avec celui qui l'appelle (tab1). Les paramètres lsuffix et rsuffix vont se greffer en entêtes de colonnes à l'extraction pour indiquer sur les noms listés de quel tableau proviennent les prénoms extraits. Pour le constater, nous devons visualiser les 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 fait de trois colonnes : une pour l'index directeur sur la colonne des noms et deux autres pour les colonnes des prénoms émanant des deux tableaux d'origine. En troisième colonne, celle des prénoms réunis avec celles du premier tableau, vous constatez la présence de quelques erreurs : #NOMBRE!. Il n'y a rien d'alarmant, bien au contraire. Cet indicateur signifie justement que la personne en cours, donc sa ligne, n'est pas trouvée dans le deuxième tableau.

Différences entre 2 tableaux Excel par formule Python

Eliminer les erreurs
C'est en éliminant les lignes portant ces erreurs que nous allons pouvoir produire l'extraction des personnes strictement identiques entre les deux tableaux. Et nous l'avons déjà appris, c'est la méthode Python dropna qui permet ce petit tour de magie.
  • Double cliquer sur la cellule H5 pour afficher son code,
  • Cliquer à la toute fin de la syntaxe pour y placer le point d'insertion,
  • Appeler la méthode dropna comme suit :
tab1.join(tab2,lsuffix="_tab1", rsuffix="_tab2").dropna()
  • Valider l'adaptation par le raccourci clavier CTRL + Entrée,
Comme vous pouvez le voir, les lignes sont moins nombreuses. Les erreurs ont disparu. Donc les lignes différentes ont été éliminées. Il ne reste plus que les lignes communes entre les deux tableaux.

Classer les résultats
Pour y voir plus clair et pour une meilleure interprétation, il apparaît opportun de classer les résultats dans l'ordre croissant sur les noms. Pour cela, la méthode join offre un quatrième paramètre, certes facultatif mais qui permet d'influer sur le tri des données résultantes.
  • Double cliquer sur la cellule H5 pour afficher son code,
  • Cliquer juste avant la parenthèse fermante de la méthode join,
  • Dès lors, régler l'argument sort comme suit :
tab1.join(tab2, lsuffix="_tab1", rsuffix="_tab2", sort=True).dropna()
  • Valider la syntaxe par le raccourci clavier CTRL + Entrée,
Petits pas après petits pas, nous y voyons en effet plus clair.

Trier les lignes communes à 2 tableaux Excel par formule Python

Supprimer la colonne redondante
Pour peaufiner la solution et pour un résultat plus propre, nous souhaiterions supprimer la troisième et dernière colonne. Etant donné qu'il ne reste plus que les lignes identiques, elle fait office de répétition sur les prénoms. Et pour cela et comme nous l'avons déjà appris aussi, nous devons engager la méthode Python drop sur cette colonne reconnue par l'intitulé Prénom_tab2.
  • Double cliquer sur la cellule H5 pour afficher son code,
  • Cliquer à la toute fin de la syntaxe pour y placer le point d'insertion,
  • Appeler alors la méthode Python drop comme suit :
tab1.join(tab2, lsuffix="_tab1", rsuffix="_tab2", sort=True).dropna().drop(columns= ["Prénom_tab2"])
  • Valider la syntaxe finale par le raccourci clavier CTRL + Entrée,
Cette fois, l'extraction est parfaite. Sur les deux colonnes Nom et Prénom, il ne subsiste plus que les lignes identiques aux deux tableaux, de quoi analyser facilement les différences, à plus forte raison avec la mise en place d'une mise en forme conditionnelle appropriée sur la base de ces travaux. Mais un détail ne vous a sans doute pas échappé, la comparaison n'est faite que sur le nom. Si un même nom sans le même prénom existe, il est extrait. Nous apporterons la solution prochainement.

 
Sur Facebook
Sur Youtube
Les livres
Contact
Mentions légales



Abonnement à la chaîne Youtube
Partager la formation
Partager sur Facebook
Partager sur Twitter
Partager sur LinkedIn