Automatizează încărcarea și combinarea datelor din mai multe foi Excel
Acum ești pregătit să automatizezi procesul de import al informațiilor despre listări din toate cele trei burse din fișierul Excel listings.xlsx, folosind o buclă for. Iată ce vei face:
- Recuperează numele foilor dintr-un obiect
pd.ExcelFile()folosind atributulsheet_names. - Creează o listă goală.
- Scrie o buclă
forcare iterează prin aceste nume de foi pentru a citi datele din foaia corespunzătoare din fișierul Excel într-o variabilă. Adaugă o coloană de referință, dacă dorești. Adaugă conținutul acestei variabile la listă la fiecare iterație. - Concatenează DataFrame-urile din listă.
Ca întotdeauna, consultă exercițiile anterioare din acest capitol sau documentația pandas dacă ai nevoie de ajutor. pandas a fost importat ca pd.
Acest exercițiu face parte din cursul
Importul și gestionarea datelor financiare în Python
Instrucțiuni pentru exercițiu
- Creează obiectul
pd.ExcelFile()folosind fișierullistings.xlsxși atribuie-l variabileixls. - Recuperează numele foilor din atributul
.sheet_namesal obiectuluixlsși atribuie-le variabileiexchanges. - Creează o listă goală și atribuie-o variabilei
listings. - Iterează peste
exchangesfolosind o buclăforcuexchangeca variabilă iterator. La fiecare iterație:- Folosește
pd.read_excel()cuxlsca sursă de date,exchangeca argumentsheet_nameși'n/a'cana_valuespentru a gestiona valorile lipsă. Atribuie rezultatul variabileilisting. - Creează o coloană nouă în
listingnumită'Exchange'cu valoareaexchange(variabila iterator). - Adaugă DataFrame-ul
listingrezultat lalistings.
- Folosește
- Folosește
pd.concat()pentru a concatena conținutul dinlistingsși atribuie rezultatul variabileilisting_data. - Inspectează conținutul lui
listing_datafolosind.info().
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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()