Otomatisasi pemuatan dan penggabungan data dari beberapa lembar kerja Excel
Sekarang Anda siap mengotomatisasi proses impor informasi listing dari ketiga bursa dalam file Excel listings.xlsx dengan menerapkan sebuah for loop. Berikut yang akan Anda lakukan:
- Ambil nama-nama sheet dari objek
pd.ExcelFile()menggunakan atributsheet_names. - Buat sebuah list kosong.
- Tulis for loop yang mengiterasi nama-nama sheet tersebut untuk membaca data dari nama sheet terkait di file Excel ke dalam sebuah variabel. Tambahkan kolom referensi jika diinginkan. Tambahkan isi variabel ini ke dalam list pada setiap iterasi.
- Konkatenasikan DataFrame dalam list tersebut.
Seperti biasa, rujuk latihan sebelumnya di bab ini atau dokumentasi pandas jika Anda memerlukan bantuan. pandas telah diimpor sebagai pd.
Latihan ini merupakan bagian dari kursus
Mengimpor dan Mengelola Data Keuangan di Python
Instruksi latihan
- Buat objek
pd.ExcelFile()menggunakan filelistings.xlsxdan simpan ke variabelxls. - Ambil nama-nama sheet dari atribut
.sheet_namesmilikxlsdan simpan keexchanges. - Buat sebuah list kosong dan simpan ke variabel
listings. - Iterasikan
exchangesmenggunakan for loop denganexchangesebagai variabel iterator. Pada setiap iterasi:- Gunakan
pd.read_excel()denganxlssebagai sumber data,exchangesebagai argumensheet_name, dan'n/a'sebagaina_valuesuntuk menangani nilai yang hilang. Simpan hasilnya kelisting. - Buat kolom baru di
listingbernama'Exchange'dengan nilaiexchange(variabel iterator). - Tambahkan DataFrame
listingyang dihasilkan kelistings.
- Gunakan
- Gunakan
pd.concat()untuk menggabungkan isilistingsdan simpan kelisting_data. - Periksa isi
listing_datamenggunakan.info().
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
# 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()