formateur informatique

Supprimer les doublons et lignes répétées par formule Python Excel

Accueil  >  Bureautique  >  Excel  >  Excel Avancé  >  Supprimer les doublons et lignes répétées par formule Python Excel
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 :


Les éléments uniques en Python pour Excel

Certes, depuis l'avènement d'Office 365, Excel offre une précieuse fonction native pour traiter les doublons. Cette fonction se nomme Unique. Mais Python pour Excel n'est pas en reste et c'est ce que nous allons découvrir.

Classeur Excel à télécharger
Nous proposons de baser la découverte sur un classeur Excel hébergeant une petite base de données. Nous découvrons la présence d'une base de données des activités de sorties entre les colonnes B et E et jusqu'à la ligne 998. Ces idées sont recensées par départements, villes et activités. Forcément il peut y avoir plusieurs idées dans un même département mais aussi dans une même ville d'un même département. C'est ce qui explique la répétition, plus ou moins fréquente, de ces départements et villes.

Sur la droite, des cases et grilles vides sont en attente de nos extractions par le biais de formules Python.

Le DataFrame
Comme nous l'avons appris à l'occasion du volet précédent, pour exploiter ces méthodes Python, nous devons premièrement encapsuler les données à traiter dans un DataFrame. Et nous allons attribuer un nom simple à ce DataFrame pour le piloter plus facilement.
  • Cliquer sur la première cellule grisée pour sélectionner la cellule H2,
  • Réaliser le raccourci clavier CTRL + ALT + MAJ + P pour activer Python,
  • Taper le début de syntaxe suivant : tab=,
Tab est le nom que nous souhaitons donner à l'objet Python pour représenter le tableau des activités de sorties.
  • Dès lors, sélectionner une petite portion du tableau comme A1 à B2,
Cette action conduit à la syntaxe suivante : tab=xl("A1:B2", headers=True),
  • Dans la barre de formule, remplacer la plage A1:B2 par le nom bdd,
Il en résulte la syntaxe suivante : tab=xl("bdd", headers=True),

Bdd est effectivement le nom que nous avions préalablement attribué à la base de données des activités de sorties. Vous pouvez le constater en déployant la zone Nom en haut à gauche de la feuille Excel.

Le DataFrame est créé. Rappelons-le, nous l'avons nommé tab. C'est désormais cet objet qui représente toutes les informations de la base de données des idées de sorties. C'est sur lui que nous allons maintenant pouvoir appliquer des méthodes Python pour purger les données.

DataFrame Python pour représenter le tableau de données Excel

La fonction ou méthode unique
La méthode python unique, lorsqu'elle est appliquée sur une colonne d'une source de données permet d'isoler toutes les valeurs sans leurs répétitions.
  • Cliquer sur la première case de la première grille d'extraction pour sélectionner la cellule H4,
  • Réaliser le raccourci clavier CTRL + ALT + MAJ + P pour activer Python,
  • Débuter la syntaxe comme suit : tab["Département"],
Grâce à cette technique, nous isolons la colonne des départements sur l'objet tab représentant la base de données.
  • Poursuivre la formule en appelant la méthode unique : .unique(),
  • Valider la formule par le raccourci clavier CTRL + Entrée,
Une colonne de données est créée, elle est encapsulée (ndarray).
  • A gauche de la barre de formule, cliquer sur la flèche dirigée vers le bas,
  • Dans les propositions, choisir Valeur Excel,
Convertir un DataFrame Python en tableau Excel

C'est ainsi que nous transformons notre objet Python en liste de données. Et comme vous pouvez l'apprécier, nous obtenons bien une liste restreinte des départements purgés de leurs doublons.

Représenter plusieurs colonnes
Maintenant, nous souhaitons isoler les lignes qui sont vraiment uniques sur les paires Département / Ville. Il existe une technique Python pour créer un DataFrame représentant plusieurs colonnes choisies à partir d'un tableau source.
  • Cliquer sur la deuxième case grisée pour sélectionner la cellule J2,
  • Réaliser le raccourci clavier CTRL + ALT + MAJ + P pour activer Python,
  • Construire la syntaxe suivante : dv=tab[["Département", "Ville"]],
Cette fois, nous nommons notre DataFrame dv, d pour département et v pour ville. Dans cette formulation particulière, notez la présence des doubles crochets pour représenter les deux champs souhaités, mentionnés entre guillemets et séparés d'une virgule. Les lignes de ces deux champs, nous les prélevons à partir de l'objet tab que nous avons précédemment construit et qui représente la base de données.
  • Valider la formule par le raccourci clavier CTRL + Entrée,
Nous obtenons un nouveau DataFrame. Et si vous cliquez sur son préfixe PY, vous visualisez les données embarquées, sur les deux colonnes que nous avons choisies.

DataFrame Python représentant plusieurs colonnes du tableau Excel

Les lignes uniques
Pour extraire les lignes uniques sur plusieurs clés, ici pour exclure toutes celles qui proposent la même ville pour un même département, ce n'est plus la méthode python unique que nous devons employer mais la méthode drop_duplicates. Nous devons bien sûr l'appliquer sur l'objet dv que nous venons de construire, celui qui représente les informations sur les départements et les villes.
  • Cliquer sur la première case de la grille d'extraction du dessous pour sélectionner la cellule J4,
  • Réaliser le raccourci clavier CTRL + ALT + MAJ + P pour activer Python,
  • Puis, construire la syntaxe suivante : dv.drop_duplicates(),
  • Valider la formule par le raccourci clavier CTRL + Entrée,
  • A gauche de la barre de formule, cliquer sur la flèche et choisir Valeur Excel,
Nous obtenons bien toutes les lignes uniques, sans répétitions de villes pour un même département et ce, avec une formule déconcertante de simplicité.

Extraire les lignes uniques par formule Python dans Excel

La première colonne, celle en plus et celle des numéros, renseigne sur la position de la ligne isolée dans la source de données.

Trier les données filtrées
Mais un petit détail chagrine pour l'interprétation des données dans la lecture linéaire. A l'intérieur de chaque département, les villes ne sont pas triées dans l'ordre croissant, ce qui ne simplifie pas la lecture. C'est pourquoi sur ces données restreintes, nous devons engager la méthode Python sort_values afin de diriger un tri avec deux clés.
  • Double cliquer sur la cellule J4 pour faire apparaître sa syntaxe,
  • A la fin, ajouter la méthode sort_values : .sort_values(by=["Département", "Ville"]),
Pour une formule finale comme suit : dv.drop_duplicates().sort_values(by=["Département", "Ville"]). Grâce à l'argument by nous organisons préférentiellement un tri croissant sur les départements et à l'intérieur de chacun, sur les villes.

Et comme vous pouvez l'apprécier dans chaque paire département/ville unique, les villes apparaissent désormais dans l'ordre croissant.

 
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