Pandas read_excel: Baca File Excel di Python
TL;DR
pandas.read_excel() adalah fungsi buat baca file Excel (.xlsx atau .xls) jadi DataFrame di Python. Bentuk dasarnya df = pd.read_excel('data.xlsx'). Kamu bisa pilih sheet lewat sheet_name, lompatin baris judul berantakan pakai skiprows, dan ambil kolom tertentu pakai usecols.
pandas.read_excel() adalah fungsi buat baca file Excel (.xlsx atau .xls) jadi DataFrame di Python. Bentuk dasarnya df = pd.read_excel('data.xlsx').
Di banyak kantor Indonesia, data masih hidup di file Excel. Laporan penjualan, rekap stok, hasil survei, semuanya .xlsx dengan banyak sheet dan baris judul di atas. read_excel narik semua itu ke Python biar bisa diolah lebih serius. Di bawah ini ada cara pakainya, parameter penting, sampai solusi error openpyxl.
Apa itu pandas read_excel?
read_excel adalah fungsi pandas yang baca file Excel lalu ngubahnya jadi DataFrame, tabel dengan baris dan kolom yang siap diolah. Beda sama file CSV, file Excel bisa punya banyak sheet, format sel, dan tata letak yang nggak selalu rapi. read_excel nangani itu semua lewat parameter yang fleksibel.
Gimana cara pakai read_excel paling dasar?
Import pandas, lalu panggil read_excel dengan nama file:
import pandas as pd
df = pd.read_excel('laporan.xlsx')
print(df.head())
Secara default, pandas baca sheet pertama. Kalau muncul error soal engine, install dulu openpyxl lewat pip install openpyxl.
Parameter read_excel yang paling sering dipakai
| Parameter | Gunanya | Contoh |
|---|---|---|
| sheet_name | Pilih sheet mana | sheet_name='Penjualan' |
| skiprows | Lompatin baris atas | skiprows=3 |
| header | Baris nama kolom | header=2 |
| usecols | Pilih kolom | usecols='A:D' |
| dtype | Paksa tipe data | dtype={'kode':str} |
Sama kayak read_csv, dtype={'kode':str} penting buat jaga kode produk atau nomor HP yang diawali nol biar nggak ilang.
Gimana cara baca sheet tertentu?
Pakai sheet_name dengan nama atau nomor indeks:
# berdasarkan nama
df = pd.read_excel('laporan.xlsx', sheet_name='Penjualan')
# berdasarkan indeks (mulai 0)
df = pd.read_excel('laporan.xlsx', sheet_name=1)
# semua sheet sekaligus (jadi dictionary)
semua = pd.read_excel('laporan.xlsx', sheet_name=None)
Kalau pakai sheet_name=None, kamu dapet dictionary. Ambil satu sheet pakai semua['Penjualan'].
Contoh kasus: baca laporan penjualan toko_berkah
Anggap file toko_berkah.xlsx punya logo dan judul di 3 baris pertama, baru tabel asli mulai di baris ke-4. Ada juga sheet terpisah buat tiap cabang.
import pandas as pd
df = pd.read_excel(
'toko_berkah.xlsx',
sheet_name='Cabang Bandung',
skiprows=3,
dtype={'kode_produk': str}
)
print(df.shape)
Dengan skiprows=3, tiga baris hiasan di atas dilompatin, jadi pandas langsung ngambil header dari baris tabel yang bener. Misal sheet cabang ini punya 1.800 baris transaksi, df.shape ngasih (1800, 7). Dari sini kamu bisa gabungin data semua cabang atau hitung total per produk.
Kalau sumber datamu berupa CSV, bukan Excel, cara bacanya sedikit beda. Cek panduannya di pandas read_csv.
Gimana cara gabung semua sheet jadi satu DataFrame?
Kalau tiap cabang punya sheet sendiri dengan kolom yang sama, gabungin pakai concat:
semua = pd.read_excel('toko_berkah.xlsx', sheet_name=None, skiprows=3)
df_gabung = pd.concat(semua.values(), ignore_index=True)
semua.values() ngasih semua DataFrame per sheet, lalu concat nyatuin jadi satu tabel panjang.
Kesalahan umum saat pakai read_excel
- Error butuh openpyxl - install dulu pakai
pip install openpyxl. - Nama kolom aneh (Unnamed: 0) - ada baris judul di atas tabel. Pakai
skiprowsatauheader. - Nol di depan kode ilang - paksa jadi teks pakai
dtype=str. - Baca lambat buat file besar - Excel emang lebih berat dari CSV. Kalau data gede dan sering dibaca, ekspor ke CSV dulu.
FAQ
Pertanyaan yang sering muncul soal read_excel ada di bagian bawah ini.
Penutup
read_excel narik data dari file Excel yang berantakan sekalipun jadi DataFrame yang rapi. Inget parameter kuncinya: sheet_name buat pilih tab, skiprows buat buang baris judul, dan dtype buat jaga kode angka.
Mau lanjut olah DataFrame setelah datanya kebaca? Kulik latihan Python data di NgulikData, atau baca dokumentasi resmi di pandas.pydata.org. Buat kelompokkin data hasil bacaan per rentang waktu, lihat juga SQL date bucketing.
Mau praktek langsung? Mulai latihan SQL gratis
Latihan interaktif, langsung di browser.
Artikel terkait
NumPy reshape: Ubah Bentuk Array (2026)
Fungsi reshape di NumPy ngatur ulang bentuk array tanpa ngubah datanya. Ini cara pakainya, arti angka -1, dan cara ngeflat array.
NumPy Array: Dasar-Dasar untuk Analis Data (2026)
NumPy array bikin hitungan data di Python jauh lebih cepat dari list biasa. Ini dasar bikin, slicing, dan operasi array buat analis.
Alternatif iterrows yang Lebih Cepat di Pandas
iterrows nyaman ditulis tapi lambat. Ini urutan alternatif iterrows di pandas dari yang tercepat, plus benchmark biar kamu tau kapan pakai yang mana.