Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :
Sujets que vous pourriez aussi aimer :Multiples critères dynamiques - Python dans Excel
Nous avons découvert précédemment comment émettre des
critères dynamiques, c'est-à -dire par rapport à des valeurs contenues dans des cellules, pour créer des
formules Python capables de réaliser des synthèses ou des extractions très précises. Ici, nous allons apprendre à combiner ces conditions numériques et textuelles avec des
critères ET et OU.
Classeur Excel à télécharger
Nous suggérons de baser l'étude sur un
classeur Excel existant.
Nous découvrons un tableau d'articles vestimentaires entre les
colonnes A et D. Ils sont référencés sur la désignation (Article), la taille, la couleur et le prix. Sur la droite, une zone multicritère est émise. Le prix doit être inférieur à 35 Euros et dans le même temps l'article doit être de taille S ou M. Bien sûr, ces conditions peuvent évoluer à souhait sur la simple volonté de l'utilisateur. En dessous, une grille d'extraction, vide pour l'instant, attend la sentence.
Le DataFrame
Comme vous le savez désormais, pour manipuler les données d'un tableau Excel avec des méthodes Python, nous devons commencer par l'encapsuler.
- Cliquer sur la première case vide de la zone de critère pour sélectionner la cellule F3,
- Réaliser le raccourci clavier CTRL + ALT + MAJ + P pour activer Python,
- Débuter la syntaxe comme suit : art=,
art est le nom que nous souhaitons attribuer à l'objet devant représenter les données.
- De fait, sélectionner tout le tableau soit la plage A3:D16,
- Puis, valider la formule par le raccourci clavier CTRL + Entrée,
Nous obtenons le
DataFrame représentant désormais le tableau. La formule que nous avons construite est la suivante :
art=xl("A3:D16", headers=True).
Encapsuler les critères
Pour
filtrer ce tableau avec une
méthode Python, selon les
trois conditions émises, nous devons aussi les embarquer.
- Cliquer sur la case vide en dessous du premier critère pour sélectionner la cellule G5,
- Réaliser le raccourci clavier CTRL + ALT + MAJ + P pour activer Python,
- Débuter la syntaxe comme suit : cr1=,
- Puis, cliquer sur la cellule G4 de la première condition : xl("G4"),
Ce premier critère est donc désormais représenté par le nom d'objet
cr1.
- Selon le même procédé, créer l'objet cr2 en H5 : cr2=xl("H4"),
- Puis, créer l'objet cr3 en I5 : cr3=xl("I4"),
L'extraction filtrante
Maintenant que les
conditions dynamiques sont représentées par des
objets Python, il est temps de bâtir la
formule d'extraction filtrante à partir de l'
objet art, représentant le
tableau de données.
- Cliquer sur la case vide au-dessus de la grille d'extraction pour sélectionner la cellule F7,
- Réaliser le raccourci clavier CTRL + ALT + MAJ + P pour activer Python,
- Débuter la syntaxe comme suit : art.query(,
Nous appliquons la
méthode Python query sur l'
objet art pour y exécuter une
requête multicritère.
- Après la parenthèse, débuter la construction de la requête comme suit : f",
La lettre
f indique que l'expression que nous allons bâtir est de
type f-string, c'est-Ã -dire qu'elle va embarquer des
critères dynamiques à interpréter.
- Enoncer le premier critère comme suit : Prix<={cr1},
Dans les conditions à respecter pour l'extraction, le prix doit en effet être inférieur à celui mentionné en
cellule G4 et représenté par l'
objet cr1.
- Poursuivre la syntaxe de cette façon : and (,
Il ne faut pas oublier les espaces avant et après le
mot clé And. Cet opérateur indique que nous allons recouper cette première condition avec d'autres. La parenthèse ouvrante va nous permettre d'émettre un critère OU (soit cette taille ou celle-là ) à recouper avec la première condition numérique que nous venons d'énoncer.
- Dans cette deuxième parenthèse inscrire les deux conditions non exclusives, comme suit :
Taille=='{cr2}' or Taille=='{cr3}'
Il faut bien penser à encadrer chacun de ces deux critères avec des simples côtes. Il s'agit en effet de conditions textuelles.
- Fermer la parenthèse de ces critères combinés,
- Fermer les guillemets de la requête multicritère,
- Fermer la parenthèse de la méthode query,
- Puis, valider la formule par le raccourci clavier CTRL + Entrée,
Nous obtenons un nouveau
DataFrame mais cette fois, nous souhaitons exploiter les données visuellement.
- De fait, à gauche de la barre de formule, cliquer sur la flèche dirigée vers le bas,
- Dans les propositions, choisir Valeur Excel,
Nous obtenons bien une collection restreinte des articles en taille S ou M et nécessairement à moins de 35 Euros.
Et bien sûr, si vous modifiez l'un ou l'autre critère, vous remarquez que l'extraction filtrante s'ajuste aussitôt et en parfaite cohérence.
Trier les données filtrées
Cependant, pour parfaire la solution d'
extraction multicritère, il apparaît opportun d'organiser les données à la sortie dans un
ordre croissant sur les
prix. Ce choix s'avère d'autant plus opportun si les données résultantes à analyser sont encore nombreuses. Et comme nous l'avons déjà appris, c'est la
méthode Python sort_values, à appliquer en cascade, qui permet d'organiser ces tris.
- Sélectionner de nouveau la cellule F7 du précédent calcul d'extraction,
- Dans la barre de formule, cliquer à la toute fin de la syntaxe pour y placer le point d'insertion,
- Taper un point (.) pour annoncer la nouvelle méthode à suivre,
- Puis, inscrire la fonction de tri comme suit : sort_values("Prix"),
- Enfin, valider cette formule ultime par le raccourci clavier CTRL + Entrée,
Notre extraction réagit toujours en parfaite cohérence avec les trois conditions formulées mais cette fois, les données résultantes sont ordonnées dans l'ordre croissant sur les prix. Les interprétations s'en trouvent forcément grandement simplifiées.