Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :
Sujets que vous pourriez aussi aimer :Rechercher dans plusieurs sources
Nous poursuivons nos pérégrinations avec les
méthodes Python dans
Excel. Ici, nous allons voir, comment sur la base d'un critère, il est possible d'extraire la ligne complète contenant l'information cherchée, sans connaître le tableau dans lequel elle se trouve.
Classeur Excel à télécharger
Nous proposons de baser l'étude sur un
classeur Excel hébergeant
trois tableaux.
Nous découvrons un
classeur Excel fait de
quatre feuilles. Les trois dernières embarquent des tableaux archivant des véhicules de la marque correspondant aux noms respectifs des feuilles. La première feuille, celle de la capture, est la feuille d'extraction. Selon un choix d'immatriculation dans la cellule jaune, la ligne complète du véhicule concerné doit être extraite et importée juste en-dessous.
Pour cela, nous avons préalablement créé
trois DataFrames Pythons en
cellules B3, C3 et D3 pour représenter chaque tableau de chaque feuille :
tb1=xl("tabl1",headers=True), tb2=xl("tabl2", headers=True), tb3=xl("tabl3", headers=True). Nous avions effectivement pris soin de nommer ces tableaux
tabl1,
tabl2 et
tabl3.
Réunir les tableaux
Nous devons commencer par assembler les tableaux en mémoire. Et comme nous l'avons appris à l'occasion du volet précédent, nous devons exploiter la
méthode concat de la
librairie Pandas.
- Cliquer sur la cellule E3 grisée pour la sélectionner,
- Réaliser le raccourci clavier CTRL + ALT + MAJ + P pour activer Python,
- Dès lors, construire la syntaxe suivante :
import pandas as lib
tbc=lib.concat([tb1, tb2, tb3]).reset_index(drop=True)
Nous obtenons un
DataFrame et si vous cliquez sur son
préfixe PY, vous obtenez un aperçu des trois tableaux ainsi réunis et sur lesquels nous allons pouvoir engager les recherches. Ce
DataFrame, nous l'avons nommé
tbc.
Attention la chronologie de construction doit respecter l'ordre des cellules sinon les objets appelés sont considérés comme inexistants !
Le critère de recherche
Maintenant, nous devons encapsuler le
critère de recherche formulé par le biais de la
cellule E5 sur l'immatriculation, dans un
objet Python, dans la cellule voisine
F5.
- Cliquer sur la cellule F5 pour la sélectionner,
- Réaliser le raccourci clavier CTRL + ALT + MAJ + P pour activer Python,
- Commencer la syntaxe comme suit : cr=,
cr est le nom que nous souhaitons attribuer à notre objet représentant le critère dynamique.
- Puis, cliquer sur la cellule E5 du critère, ce qui donne : cr=xl("E5"),
- Valider la construction par le raccourci clavier CTRL + Entrée,
Nous obtenons un objet Python qui représente le critère dynamique et que nous allons maintenant pouvoir exploiter.
Chercher selon le critère
Nous l'avons découverte à l'occasion du volet précédent, c'est la
méthode Python loc qui permet de réaliser des
recherches sur des
données Excel. En paramètre, en exerçant l'
objet du critère sur la
colonne Immat, nous obtiendrons l'extraction précise souhaitée.
- Cliquer sur la première case de la grille d'extraction pour sélectionner la cellule D7,
- Réaliser le raccourci clavier CTRL + ALT + MAJ + P pour activer Python,
- Puis, bâtir la syntaxe suivante :
tbc.loc[tbc['Immat.'] == cr, :].reset_index(drop=True)
- Valider la formule par le raccourci clavier CTRL + Entrée,
- 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 l'extraction espérée sur la recherche de l'immatriculation, sans pour autant connaître par avance, le tableau qui la contient.
Souvenez-vous, nous l'avons appris à l'occasion du précédent chapitre, le symbole deux-points (:) en deuxième paramètre de la
méthode Python loc, permet d'inclure
toutes les colonnes d'origine à l'extraction.
Désormais, à chaque fois que vous changez d'immatriculation avec la liste déroulante, vous rapatriez automatiquement toutes les données du véhicule attaché.