Automatiser le chargement et la combinaison de données à partir de plusieurs feuilles Excel
Vous êtes maintenant prêt à automatiser l'importation des informations d'inscription pour les trois bourses dans le fichier Excel listings.xlsx en mettant en place une boucle for. Voici les étapes :
- Récupérer les noms de feuilles d'un objet
pd.ExcelFile()au moyen de son attributsheet_names. - Créer une liste vide.
- Écrire une boucle for qui parcourt ces noms de feuilles pour lire les données de la feuille correspondante du fichier Excel dans une variable. Ajouter une colonne de référence, au besoin. Ajouter le contenu de cette variable à la liste à chaque itération.
- Concaténer les DataFrames contenus dans la liste.
Comme toujours, référez-vous aux exercices précédents de ce chapitre ou à la documentation de pandas si vous avez besoin d'aide. pandas a été importé sous le nom pd.
Cette activité fait partie du cours
Importer et gérer des données financières en Python
Instructions de l’exercice
- Créez l'objet
pd.ExcelFile()à partir du fichierlistings.xlsxet assignez-le à la variablexls. - Récupérez les noms de feuilles à partir de l'attribut
.sheet_namesdexlset assignez-les àexchanges. - Créez une liste vide et assignez-la à la variable
listings. - Itérez sur
exchangesà l'aide d'une boucle for avecexchangecomme variable d'itération. À chaque itération :- Utilisez
pd.read_excel()avecxlscomme source de données,exchangecomme argumentsheet_name, et'n/a'commena_valuespour traiter les valeurs manquantes. Assignez le résultat àlisting. - Créez une nouvelle colonne dans
listingappelée'Exchange'avec la valeurexchange(la variable d'itération). - Ajoutez le DataFrame
listingobtenu àlistings.
- Utilisez
- Utilisez
pd.concat()pour concaténer le contenu delistingset assignez le résultat àlisting_data. - Examinez le contenu de
listing_dataavec.info().
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Create the pd.ExcelFile() object
xls = ____
# Extract the sheet names from xls
exchanges = ____.____
# Create an empty list: listings
# Import the data
for exchange in exchanges:
listing = pd.____(____, sheet_name=____, na_values='n/a')
listing['Exchange'] = ____
listings.____(____)
# Concatenate the listings: listing_data
listing_data = pd.____(____)
# Inspect the results
listing_data.info()