Automatisez le chargement et la combinaison de données depuis plusieurs feuilles Excel
Vous êtes maintenant prêt à automatiser l’import des informations de cotation des trois places boursières présentes dans le fichier Excel listings.xlsx en implémentant une boucle for. Voici ce que vous allez faire :
- Récupérer les noms de feuilles d’un objet
pd.ExcelFile()à l’aide 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, si besoin, une colonne de référence. À chaque itération, ajouter le contenu de cette variable à la liste.
- Concaténer les DataFrames de la liste.
Comme toujours, reportez-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.
Cet exercice fait partie du cours
Importer et gérer des données financières en Python
Instructions
- Créez l’objet
pd.ExcelFile()en utilisant le fichierlistings.xlsxet affectez-le à la variablexls. - Récupérez les noms de feuilles depuis l’attribut
.sheet_namesdexlset affectez-les àexchanges. - Créez une liste vide et affectez-la à la variable
listings. - Itérez sur
exchangesavec une boucle for en utilisantexchangecomme variable d’itération. À chaque itération :- Utilisez
pd.read_excel()avecxlscomme source de données,exchangecomme argumentsheet_name, et'n/a'commena_valuespour gérer les valeurs manquantes. Affectez 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 affectez le résultat àlisting_data. - Inspectez le contenu de
listing_dataavec.info().
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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()