Kom igångKom igång gratis

Automatisera inläsning och sammanslagning av data från flera Excel-kalkylblad

Nu är du redo att automatisera importen av listningsinformation från alla tre börser i Excel-filen listings.xlsx med hjälp av en for-loop. Här är vad du ska göra:

  1. Hämta bladnamnen från ett pd.ExcelFile()-objekt via dess attribut sheet_names.
  2. Skapa en tom lista.
  3. Skriv en for-loop som itererar igenom bladnamnen och läser in data från motsvarande blad i Excel-filen till en variabel. Lägg till en referenskolumn om du vill. Lägg till innehållet i variabeln i listan vid varje iteration.
  4. Konkatenera DataFrames i listan.

Som vanligt kan du titta på tidigare övningar i det här kapitlet eller i pandas-dokumentationen om du behöver hjälp. pandas har importerats som pd.

Den här övningen är en del av kursen

Importera och hantera finansiell data i Python

Visa kurs

Övningsinstruktioner

  • Skapa pd.ExcelFile()-objektet med filen listings.xlsx och tilldela det till variabeln xls.
  • Hämta bladnamnen från attributet .sheet_namesxls och tilldela till exchanges.
  • Skapa en tom lista och tilldela den till variabeln listings.
  • Iterera över exchanges med en for-loop där exchange är iteratorvariabeln. Gör följande i varje iteration:
    • Använd pd.read_excel() med xls som datakälla, exchange som argument för sheet_name och 'n/a' som na_values för att hantera saknade värden. Tilldela resultatet till listing.
    • Skapa en ny kolumn i listing med namnet 'Exchange' och värdet exchange (iteratorvariabeln).
    • Lägg till den resulterande listing-DataFrame:n i listings.
  • Använd pd.concat() för att konkatenera innehållet i listings och tilldela resultatet till listing_data.
  • Granska innehållet i listing_data med .info().

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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()
Redigera och kör kod