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.
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.
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 | 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.
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'].
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.
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.
pip install openpyxl.skiprows atau header.dtype=str.Pertanyaan yang sering muncul soal read_excel ada di bagian bawah ini.
read_excel baca file Excel (.xlsx atau .xls) yang bisa punya banyak sheet, format sel, dan rumus. read_csv baca file teks polos yang cuma berisi data dipisah koma. read_excel lebih lambat dan butuh library tambahan kayak openpyxl. Kalau datamu ada di CSV, read_csv lebih cepat. Kalau di Excel dengan banyak sheet, pakai read_excel.
Pakai parameter sheet_name. Kamu bisa kasih nama sheet, misalnya sheet_name='Penjualan', atau nomor indeksnya mulai dari 0, misalnya sheet_name=1 buat sheet kedua. Kalau mau baca semua sheet sekaligus, pakai sheet_name=None, hasilnya berupa dictionary berisi DataFrame per sheet. Ini kepake buat file laporan yang datanya tersebar di banyak tab.
pandas nggak baca Excel sendiri, dia butuh engine tambahan. Buat file .xlsx, install openpyxl pakai pip install openpyxl. Buat file .xls lama, pakai xlrd. Setelah keinstall, read_excel jalan normal. Kalau kamu pakai versi pandas baru, openpyxl biasanya jadi default buat .xlsx, jadi tinggal pastiin dia udah keinstall di environment kamu.
File Excel dari kantor sering ada logo atau judul di beberapa baris atas sebelum tabel asli. Pakai skiprows buat lompatin baris itu, misalnya skiprows=3 buat lewatin 3 baris pertama. Kalau baris header ada di posisi tertentu, kamu juga bisa atur header, misalnya header=2 biar pandas ngambil nama kolom dari baris ketiga.
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.
Nama toko ketik campur huruf besar-kecil, spasi nyasar di ujung, atau kode produk nempel jadi satu. Accessor .str di pandas ngerapiin semua itu tanpa loop.
Model machine learning cuma ngerti angka, bukan teks kayak merah atau biru. get_dummies ngubah kolom kategori jadi kolom 0/1 dalam satu baris kode.
Cara pakai pandas crosstab buat bikin tabel silang yang menghitung frekuensi antar dua kategori. Contoh analisis kategori produk per kota UMKM.