Das Laden und Kombinieren von Daten aus mehreren Excel-Arbeitsblättern automatisieren
Jetzt bist du bereit, den Importprozess der Listing-Informationen aus allen drei Börsen im Excel-File listings.xlsx mit einer for-Schleife zu automatisieren. Das wirst du tun:
- Rufe die Blattnamen eines
pd.ExcelFile()-Objekts über sein Attributsheet_namesab. - Erstelle eine leere Liste.
- Schreibe eine for-Schleife, die über diese Blattnamen iteriert, um die Daten aus dem entsprechenden Blatt der Excel-Datei in eine Variable einzulesen. Füge bei Bedarf eine Referenzspalte hinzu. Hänge den Inhalt dieser Variable in jeder Iteration an die Liste an.
- Konkateniere die DataFrames in der Liste.
Wie immer kannst du bei Bedarf auf die vorherigen Übungen in diesem Kapitel oder die Dokumentation von pandas zurückgreifen. pandas wurde als pd importiert.
Diese Übung ist Teil des Kurses
Importing and Managing Financial Data in Python
Anleitung zur Übung
- Erstelle das
pd.ExcelFile()-Objekt mit der Dateilistings.xlsxund weise es der Variablenxlszu. - Rufe die Blattnamen über das Attribut
.sheet_namesvonxlsab und weise sieexchangeszu. - Erstelle eine leere Liste und weise sie der Variablen
listingszu. - Iteriere über
exchangesmit einer for-Schleife undexchangeals Iterationsvariable. In jeder Iteration:- Verwende
pd.read_excel()mitxlsals Datenquelle,exchangeals Argumentsheet_nameund'n/a'alsna_values, um fehlende Werte zu behandeln. Weise das Ergebnislistingzu. - Erstelle in
listingeine neue Spalte namens'Exchange'mit dem Wertexchange(der Iterationsvariable). - Hänge den resultierenden
listingDataFrame anlistingsan.
- Verwende
- Verwende
pd.concat(), um die Inhalte vonlistingszu konkateniere,n und weise das Ergebnislisting_datazu. - Inspiziere den Inhalt von
listing_datamit.info().
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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()