Membaca File Excel dan JSON
Impor buku kerja Excel dengan pd.read_excel dan catatan JSON dengan pd.read_json, sambil menangani variasi format yang umum
Membaca File Excel dan JSON adalah pelajaran Pandas & NumPy Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Pandas & NumPy Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Pandas & NumPy Academy mencakup 4 pelajaran total.
Mengapa Excel dan JSON Penting
Meskipun CSV adalah format universal, berkas Excel (.xlsx/.xls) merupakan format yang paling dominan untuk data bisnis yang dibagikan melalui email dan alat pelaporan. JSON adalah format bawaan API REST dan basis data NoSQL. Pandas menyediakan pd.read_excel() dan pd.read_json() yang mencerminkan API pembaca CSV, sehingga keterampilan Anda dapat langsung diterapkan.
import pandas as pd
# The three most common load functions share the same philosophy
df_csv = pd.read_csv('data.csv')
df_excel = pd.read_excel('data.xlsx')
df_json = pd.read_json('data.json')Memasang Mesin Excel
Membaca berkas Excel memerlukan mesin: openpyxl untuk berkas .xlsx (format modern) dan xlrd untuk berkas .xls yang lebih lama. Pasang dengan pip install openpyxl. Pandas memilih mesin secara otomatis berdasarkan ekstensi berkas. Untuk menulis, gunakan xlsxwriter untuk pemformatan tingkat lanjut. Jika mesin belum dipasang, read_excel() akan memunculkan ModuleNotFoundError.
# Install the required engine:
# pip install openpyxl # for .xlsx (modern)
# pip install xlrd==1.2.0 # for .xls (legacy)
import pandas as pd
df = pd.read_excel('report.xlsx', engine='openpyxl')Memilih Lembar dengan sheet_name
Buku kerja Excel dapat memiliki beberapa lembar. sheet_name= menentukan lembar yang akan dibaca: teruskan string (nama lembar), bilangan bulat (posisi berbasis 0), atau daftar untuk membaca beberapa lembar ke dalam dict. Teruskan sheet_name=None untuk membaca semua lembar ke dalam dict dengan kunci berupa nama lembar. Memeriksa lembar yang tersedia menggunakan pd.ExcelFile('file.xlsx').sheet_names merupakan langkah awal yang baik.
import pandas as pd
# Read the second sheet
df = pd.read_excel('workbook.xlsx', sheet_name=1)
# Read by name
df = pd.read_excel('workbook.xlsx', sheet_name='Sales')
# Inspect available sheets
xl = pd.ExcelFile('workbook.xlsx')
print(xl.sheet_names) # ['Summary', 'Sales', 'Costs']Parameter Excel Umum
pd.read_excel() mendukung sebagian besar parameter yang sama seperti read_csv(): header=, index_col=, usecols=, skiprows=, dtype=, dan nrows=. Untuk Excel, usecols juga menerima string rentang kolom Excel seperti 'A:C' atau 'A,C,E', yang praktis jika huruf kolom diketahui dari tata letak lembar kerja.
import pandas as pd
df = pd.read_excel(
'sales_report.xlsx',
sheet_name='Q1',
header=2, # header is on row 3 (0-indexed)
usecols='A:D', # Excel column range
skiprows=[3, 4], # skip rows 4 and 5
nrows=100
)Membaca JSON: Format Orientasi
pd.read_json() membaca JSON ke dalam DataFrame. Parameter orient= menentukan struktur JSON: 'records' (daftar dict baris), 'columns' (dict larik kolom, nilai default), 'index' (dict dict baris dengan kunci berupa indeks), atau 'values' (larik mentah). Sebagian besar API REST mengembalikan format 'records'—selalu periksa JSON mentah terlebih dahulu untuk menentukan orientasi yang benar.
import pandas as pd
# REST API response: list of records
json_str = '[{"name": "Alice", "age": 30}, {"name": "Bob", "age": 25}]'
df = pd.read_json(json_str, orient='records')
print(df)Membaca JSON dari Berkas atau URL
pd.read_json() menerima jalur berkas, URL, atau string JSON secara langsung. Untuk JSON bertingkat dalam (misalnya, respons API dengan objek bertingkat), gunakan json_normalize() dari modul pandas.io.json, yang meratakan dict bertingkat menjadi kolom dengan nama yang dipisahkan titik.
import pandas as pd
from pandas.io.json import json_normalize
# From a file
df = pd.read_json('events.json')
# Flatten nested JSON
nested = [{'id': 1, 'user': {'name': 'A', 'age': 30}},
{'id': 2, 'user': {'name': 'B', 'age': 25}}]
df_flat = json_normalize(nested)
print(df_flat.columns.tolist()) # ['id', 'user.name', 'user.age']Format JSON Lines
JSON Lines (NDJSON) menyimpan satu objek JSON per baris, sehingga kumpulan data besar mudah dialirkan. Gunakan pd.read_json('file.jsonl', lines=True) untuk mengurai format ini. Format ini umum digunakan dalam berkas log, ekspor Kafka, dan format kumpulan data pembelajaran mesin. Setiap baris harus berupa objek JSON yang valid; baris yang tidak sesuai format menyebabkan pembacaan gagal.
import pandas as pd
# file.jsonl contains one JSON record per line:
# {"id": 1, "event": "click"}
# {"id": 2, "event": "view"}
df = pd.read_json('events.jsonl', lines=True)
print(df)Menangani Penguraian Tanggal dalam JSON
JSON tidak memiliki tipe tanggal bawaan—tanggal disimpan sebagai string atau stempel waktu Unix (milidetik atau detik sejak epoch). Tetapkan convert_dates=True (default) agar Pandas mencoba mengonversi secara otomatis kolom yang namanya mengandung 'date', 'time', atau 'at'. Untuk nama kolom atau stempel waktu khusus, lakukan konversi secara eksplisit dengan pd.to_datetime(df['col'], unit='ms').
import pandas as pd
# Unix milliseconds timestamp column
df = pd.read_json('events.json', orient='records')
df['created_at'] = pd.to_datetime(df['created_at'], unit='ms')
print(df['created_at'].dtype) # datetime64[ns]Membandingkan Masalah Excel dan JSON
Masalah Excel: sel yang digabungkan menghasilkan baris NaN, baris/kolom tersembunyi tetap disertakan dalam keluaran, dan pemformatan angka (misalnya, tanggal yang disimpan sebagai float) harus diperbaiki setelah pemuatan. Masalah JSON: keberadaan bidang yang tidak konsisten di berbagai rekaman menghasilkan NaN, dan kunci bilangan bulat dalam objek JSON menjadi nama kolom string.
import pandas as pd
# Excel date stored as float (Excel serial date)
df = pd.read_excel('old_report.xls')
# If dates appear as floats (e.g., 44927.0), convert:
# from xlrd import xldate_as_datetime
# df['date'] = df['date'].apply(lambda x: xldate_as_datetime(x, 0))pd.ExcelFile untuk Beberapa Lembar
Jika Anda perlu membaca beberapa lembar dari berkas yang sama secara efisien, buka pengelola konteks pd.ExcelFile dan panggil parse(sheet_name) untuk setiap lembar. Cara ini menghindari pembukaan dan penguraian ulang berkas untuk setiap lembar—hal yang penting untuk buku kerja berukuran besar. Pengelola konteks menutup penangan berkas secara otomatis.
import pandas as pd
with pd.ExcelFile('annual_report.xlsx') as xf:
df_q1 = xf.parse('Q1')
df_q2 = xf.parse('Q2')
print(df_q1.shape, df_q2.shape)Menggunakan requests untuk Memuat API JSON
Untuk data dari API REST, gunakan pustaka requests untuk mengambil JSON dan teruskan objek Python yang telah diurai ke pd.DataFrame() atau pd.json_normalize(). Pola ini memisahkan urusan HTTP dari penguraian data dan memberi Anda akses ke header, autentikasi, serta paginasi sebelum Pandas memproses data.
import pandas as pd
import requests
response = requests.get('https://api.example.com/records')
data = response.json() # Python list of dicts
df = pd.DataFrame(data)
print(df.head())Pemeriksaan Cepat
Uji pemahaman Anda tentang membaca berkas Excel dan JSON dengan Pandas dari pelajaran ini.
Ringkasan Pelajaran
Dalam pelajaran ini Anda mempelajari: pd.read_excel() membaca berkas xlsx dan memungkinkan Anda menentukan lembar yang akan dimuat melalui sheet_name, pd.read_json() menangani beberapa struktur JSON yang dikendalikan oleh parameter orient, dan json_normalize() meratakan objek JSON bertingkat menjadi DataFrame datar. Selanjutnya, kita akan mengekspor DataFrames ke berkas CSV dan Excel untuk dibagikan dan diproses lebih lanjut.
Belajar Python dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 30
- Pelajaran
- 120
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Membaca File Excel dan JSON” gratis?
Ya — teks lengkap “Membaca File Excel dan JSON” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Pandas & NumPy Academy, upgrade ke CoddyKit PRO. Kursus Pandas & NumPy Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Membaca File Excel dan JSON”?
Impor buku kerja Excel dengan pd.read_excel dan catatan JSON dengan pd.read_json, sambil menangani variasi format yang umum Kamu berlatih Pandas & NumPy Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Pandas & NumPy Academy?
Tidak diperlukan pengalaman sebelumnya. Pandas & NumPy Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Membaca File Excel dan JSON” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Pandas & NumPy Academy ini?
Ya. Setiap pelajaran Pandas & NumPy Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Membaca File CSV
- Membaca File Excel dan JSON
- Menulis DataFrames ke File
- Membaca dari URL dan StringIO