Aan de slagGa gratis aan de slag

Automatiseer het laden en samenvoegen van data uit meerdere Excel-werkbladen

Je bent nu klaar om het importproces van noteringsinformatie van alle drie de beurzen in het Excel-bestand listings.xlsx te automatiseren met een for-loop. Dit ga je doen:

  1. Haal de bladenamen op van een pd.ExcelFile()-object via het attribuut sheet_names.
  2. Maak een lege lijst.
  3. Schrijf een for-loop die over deze bladenamen itereert om de data van het corresponderende werkblad in het Excel-bestand in een variabele in te lezen. Voeg indien gewenst een referentiekolom toe. Voeg de inhoud van deze variabele bij elke iteratie toe aan de lijst.
  4. Concateneer de DataFrames in de lijst.

Raadpleeg zoals altijd de vorige oefeningen in dit hoofdstuk of de documentatie van pandas als je hulp nodig hebt. pandas is geïmporteerd als pd.

Deze oefening maakt deel uit van de cursus

Financiële data importeren en beheren in Python

Cursus bekijken

Oefeninstructies

  • Maak het pd.ExcelFile()-object met het bestand listings.xlsx en ken dit toe aan de variabele xls.
  • Haal de bladenamen op via het attribuut .sheet_names van xls en ken dit toe aan exchanges.
  • Maak een lege lijst en ken die toe aan de variabele listings.
  • Itereer over exchanges met een for-loop met exchange als iteratorvariabele. Voer in elke iteratie het volgende uit:
    • Gebruik pd.read_excel() met xls als gegevensbron, exchange als het argument sheet_name, en 'n/a' als na_values om ontbrekende waarden aan te pakken. Ken het resultaat toe aan listing.
    • Maak een nieuwe kolom in listing met de naam 'Exchange' met de waarde exchange (de iteratorvariabele).
    • Voeg de resulterende listing DataFrame toe aan listings.
  • Gebruik pd.concat() om de inhoud van listings te concateneren en ken dit toe aan listing_data.
  • Inspecteer de inhoud van listing_data met .info().

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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()
Code bewerken en uitvoeren