CommencerCommencer gratuitement

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 :

  1. Récupérer les noms de feuilles d’un objet pd.ExcelFile() à l’aide de son attribut sheet_names.
  2. Créer une liste vide.
  3. É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.
  4. 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

Afficher le cours

Instructions

  • Créez l’objet pd.ExcelFile() en utilisant le fichier listings.xlsx et affectez-le à la variable xls.
  • Récupérez les noms de feuilles depuis l’attribut .sheet_names de xls et affectez-les à exchanges.
  • Créez une liste vide et affectez-la à la variable listings.
  • Itérez sur exchanges avec une boucle for en utilisant exchange comme variable d’itération. À chaque itération :
    • Utilisez pd.read_excel() avec xls comme source de données, exchange comme argument sheet_name, et 'n/a' comme na_values pour gérer les valeurs manquantes. Affectez le résultat à listing.
    • Créez une nouvelle colonne dans listing appelée 'Exchange' avec la valeur exchange (la variable d’itération).
    • Ajoutez le DataFrame listing obtenu à listings.
  • Utilisez pd.concat() pour concaténer le contenu de listings et affectez le résultat à listing_data.
  • Inspectez le contenu de listing_data avec .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()
Modifier et exécuter le code