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:
- Haal de bladenamen op van een
pd.ExcelFile()-object via het attribuutsheet_names. - Maak een lege lijst.
- 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.
- 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
Oefeninstructies
- Maak het
pd.ExcelFile()-object met het bestandlistings.xlsxen ken dit toe aan de variabelexls. - Haal de bladenamen op via het attribuut
.sheet_namesvanxlsen ken dit toe aanexchanges. - Maak een lege lijst en ken die toe aan de variabele
listings. - Itereer over
exchangesmet een for-loop metexchangeals iteratorvariabele. Voer in elke iteratie het volgende uit:- Gebruik
pd.read_excel()metxlsals gegevensbron,exchangeals het argumentsheet_name, en'n/a'alsna_valuesom ontbrekende waarden aan te pakken. Ken het resultaat toe aanlisting. - Maak een nieuwe kolom in
listingmet de naam'Exchange'met de waardeexchange(de iteratorvariabele). - Voeg de resulterende
listingDataFrame toe aanlistings.
- Gebruik
- Gebruik
pd.concat()om de inhoud vanlistingste concateneren en ken dit toe aanlisting_data. - Inspecteer de inhoud van
listing_datamet.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()