formateur informatique

Extractions par exclusions avec une formule Python dans Excel

Accueil  >  Bureautique  >  Excel  >  Excel Avancé  >  Extractions par exclusions avec une formule Python dans 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 :


Méthode Python mask

La méthode Python mask permet d'extraire d'un tableau Excel toutes les données qui ne correspondent pas à un ou plusieurs critères. En d'autres termes, elle permet de masquer les informations qui répondent favorablement à un critère. C'est elle que nous proposons de découvrir dans ce nouveau sujet.

Classeur Excel à télécharger
Nous proposons d'appuyer la découverte sur un classeur Excel existant. Tableau Excel des salariés d-une entreprise

Nous découvrons un tableau des salariés sur la gauche de la feuille entre les colonnes B et G.

Dataframes Python avec critères pour extraire des données Excel

Sur la droite, plusieurs Dataframes Python existent déjà. En cellule I3, il s'agit tout d'abord de celui qui embarque les données du tableau des salariés : tb=xl("B3:G22", headers=True). Puis viennent les objets qui embarquent les deux critères numériques et le critère textuel, en cellules respectives J5, K5 et L5, selon les syntaxes suivantes : cr1=xl("J4"), cr2=xl("K4") et cr3=xl("L4").

Premier critère
Les extractions doivent se produire dans la grille vide placée en-dessous des critères, à partir de I7. Nous proposons de procéder par étapes en masquant tout d'abord tous les salariés dont le salaire est inférieur à la première condition numérique émise (2000).
  • Sélectionner la cellule I7,
  • Réaliser le raccourci clavier CTRL + ALT + MAJ + P pour activer Python,
  • Bâtir la syntaxe suivante : tb.mask(tb['Salaire']<cr1),
  • Dès lors, valider la formule par le raccourci clavier CTRL + Entrée,
Sur le DataFrame (tb) représentant le tableau des salariés, nous engageons la méthode Python mask. Nous la faisons agir sur la colonne des salaires de manière à masquer tous ceux qui sont inférieurs à 2000 Euros (tb['Salaire']<cr1). Il est désormais temps de transformer le DataFrame résultant en données exploitables.
  • 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 bien une extraction. Les lignes qui répondent favorablement au critère sont sanctionnées par des erreurs. Et ça, nous savons les gérer grâce à la méthode Python dropna.
  • En cellule I7, adapter la précédente syntaxe comme suit :
tb.mask(tb['Salaire']<cr1).dropna()
  • Puis, revalider la formule par le raccourci clavier CTRL + Entrée,
Les erreurs disparaissent et il ne subsiste en effet plus que les salaires supérieurs à 2000 Euros. En revanche, une nouvelle colonne se greffe en première place. Elle renseigne sur les positions des lignes extraites dans le tableau d'origine. Nous ne la souhaitons pas et ça aussi, nous l'avons déjà appris, c'est la méthode Python reset_index qui permet de la masquer.
  • En cellule I7, adapter la précédente syntaxe comme suit :
tb.mask(tb['Salaire']<cr1).dropna().reset_index(drop=True)
  • Puis, revalider la formule par le raccourci clavier CTRL + Entrée,
Cette fois, nous obtenons bien l'extraction souhaitée sur la base d'un seul critère pour l'instant.

Deuxième critère
Ensuite, nous devons recouper la première condition avec le deuxième critère numérique. Chaque expression doit être écrite entre parenthèses. Donc nous devons doubler ces parenthèses.
  • En cellule I7, adapter la précédente syntaxe comme suit :
tb.mask((tb['Salaire']<cr1) | (tb['Salaire']>cr2)).dropna().reset_index(drop=True)
  • Puis, revalider la formule par le raccourci clavier CTRL + Entrée,
Nous excluons tous les salaires inférieurs à 2000 Euros et tous les salaires supérieurs à 2500 Euros. Vous notez l'emploi de l'opérateur OU qui se matérialise avec la barre verticale (|) en Python.

Extraire sur des critères recoupés par formule Python dans Excel

Et effectivement, il ne subsiste plus que les salariés rémunérés entre 2000 et 2500 Euros.

Troisième critère
Nous devons enfin recouper ces deux premières conditions avec le critère textuel à faire agir sur la colonne des civilités cette fois. Comme la méthode mask est une méthode d'exclusion, c'est bien l'opérateur OU qui est de mise une fois encore et non l'opérateur ET.
  • En cellule I7, adapter la précédente syntaxe comme suit :
tb.mask((tb['Salaire']<cr1) | (tb['Salaire']>cr2) | (tb['Civilité']==cr3)).dropna().reset_index(drop=True)
  • Puis, revalider la formule par le raccourci clavier CTRL + Entrée,
L'égalité se vérifie par un double égal (==) car le simple égal est utilisé pour les affectations en Python. Les hommes sont désormais exclus. Il ne reste plus que les femmes gagnant entre 2000 et 2500 Euros. Il s'agit d'une extraction très affinée.

Extraire sur 3 conditions recoupées par formule Python dans Excel

Maintenant si vous vous amusez à changer les critères, vous avez le plaisir de constater que l'extraction par exclusion s'ajuste en parfaite cohérence.

 
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