Automatizza il caricamento e la combinazione dei dati da più fogli di lavoro Excel
Ora sei prontə ad automatizzare l'import delle informazioni sulle società quotate per tutte e tre le borse valori presenti nel file Excel listings.xlsx, implementando un ciclo for. Ecco cosa farai:
- Recupera i nomi dei fogli di un oggetto
pd.ExcelFile()usando l'attributosheet_names. - Crea una lista vuota.
- Scrivi un ciclo for che itera su questi nomi di foglio per leggere i dati dal foglio corrispondente nel file Excel in una variabile. Aggiungi, se vuoi, una colonna di riferimento. Ad ogni iterazione, aggiungi il contenuto di questa variabile alla lista.
- Concatena i DataFrame nella lista.
Come sempre, fai riferimento agli esercizi precedenti in questo capitolo o alla documentazione di pandas se ti serve aiuto. pandas è stato importato come pd.
Questo esercizio fa parte del corso
Importing and Managing Financial Data in Python
Istruzioni dell'esercizio
- Crea l'oggetto
pd.ExcelFile()usando il filelistings.xlsxe assegnalo alla variabilexls. - Recupera i nomi dei fogli dall'attributo
.sheet_namesdixlse assegnali aexchanges. - Crea una lista vuota e assegnala alla variabile
listings. - Itera su
exchangesusando un ciclo for conexchangecome variabile iteratrice. A ogni iterazione:- Usa
pd.read_excel()conxlscome sorgente dati,exchangecome argomentosheet_namee'n/a'comena_valuesper gestire i valori mancanti. Assegna il risultato alisting. - Crea una nuova colonna in
listingchiamata'Exchange'con il valoreexchange(la variabile iteratrice). - Aggiungi (append) il DataFrame
listingrisultante alistings.
- Usa
- Usa
pd.concat()per concatenare i contenuti dilistingse assegnali alisting_data. - Ispeziona i contenuti di
listing_datausando.info().
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
# 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()