0Pricing
Pandas & NumPy Academy · Pelajaran

Membaca File CSV

Muat file CSV dengan pd.read_csv, atur pemisah, baris header, dan kolom indeks, lalu pratinjau hasilnya

Membaca File CSV adalah pelajaran Pandas & NumPy Academy gratis di CoddyKit. Ini adalah pelajaran 1 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 CSV Menjadi Format Universal

CSV (Comma-Separated Values) adalah format yang paling banyak digunakan untuk bertukar data tabular. Format ini dapat dibaca manusia, didukung oleh setiap basis data, lembar bentang, dan alat analitik, serta tidak memerlukan definisi skema. pd.read_csv() adalah fungsi Pandas yang paling sering dipanggil dalam analisis data karena hampir setiap dataset publik, ekspor API, atau cadangan basis data tersedia dalam format CSV.

import pandas as pd

# Read a CSV file from disk
df = pd.read_csv('data/sales.csv')
print(df.shape)
print(df.head())

Pemanggilan Dasar read_csv()

Argumen wajib satu-satunya adalah jalur file (string atau objek Path). Secara bawaan, Pandas menganggap baris pertama sebagai header (nama kolom), pemisahnya adalah koma, dan nilai akan disimpulkan ke dtype yang sesuai. DataFrame yang dihasilkan memiliki RangeIndex bilangan bulat bawaan. Selalu panggil df.info() segera setelah memuat data untuk menemukan masalah penyimpulan tipe.

import pandas as pd

df = pd.read_csv('products.csv')

# Equivalent with explicit defaults:
df = pd.read_csv('products.csv',
                 sep=',',
                 header=0,
                 index_col=None)

Mengatur Pemisah

Gunakan parameter sep= untuk menentukan pemisah selain koma. File yang dipisahkan tab (TSV) menggunakan sep='\t'. Beberapa ekspor Eropa menggunakan titik koma sebagai pemisah (sep=';') karena koma digunakan sebagai pemisah desimal. Berikan sep=None, engine='python' agar Pandas mendeteksi pemisah secara otomatis dari isi file.

import pandas as pd

# Tab-separated file
df_tsv = pd.read_csv('data.tsv', sep='\t')

# Semicolon-separated (common in Europe)
df_semi = pd.read_csv('data.csv', sep=';')

# Auto-detect separator
df_auto = pd.read_csv('data.txt', sep=None, engine='python')

Header dan skiprows

Jika CSV tidak memiliki baris header, tetapkan header=None dan Pandas akan memberikan nama kolom bilangan bulat (0, 1, 2, ...). Berikan nama khusus dengan names=['a', 'b', 'c']. Gunakan skiprows=n untuk melewati n baris pertama (misalnya metadata atau komentar di bagian atas file). skiprows juga menerima daftar nomor baris tertentu yang ingin dilewati.

import pandas as pd

# CSV with no header
df = pd.read_csv('noheader.csv', header=None,
                 names=['id', 'value', 'category'])

# Skip first 3 rows (e.g., metadata or comments)
df = pd.read_csv('report.csv', skiprows=3)

Menetapkan Kolom Indeks

index_col= menentukan kolom yang digunakan sebagai indeks baris. Berikan nama kolom atau posisi bilangan bulat. Menetapkan indeks yang bermakna (misalnya kolom tanggal atau ID unik) memungkinkan akses cepat berdasarkan label dengan .loc dan diperlukan sebelum operasi deret waktu. Berikan daftar untuk MultiIndex.

import pandas as pd

# Use 'date' column as row index
df = pd.read_csv('timeseries.csv', index_col='date', parse_dates=True)
print(df.index.dtype)  # datetime64[ns]

# Equivalent with column position
df2 = pd.read_csv('timeseries.csv', index_col=0, parse_dates=True)

Mengurai Tanggal Saat Memuat

parse_dates=True memberi tahu Pandas untuk mencoba mengonversi indeks menjadi datetime. Berikan daftar nama kolom kepada parse_dates=['col1', 'col2'] untuk mengurai kolom tertentu yang bukan indeks sebagai tanggal. Pandas akan mencoba format umum secara otomatis; untuk format yang tidak umum, gunakan date_format=. Mengurai tanggal saat pemuatan menghindari pemanggilan pd.to_datetime() berulang kali nantinya.

import pandas as pd

# Parse 'order_date' column as datetime
df = pd.read_csv('orders.csv',
                 parse_dates=['order_date'])
print(df['order_date'].dtype)  # datetime64[ns]

Memilih Kolom dengan usecols

usecols=['col1', 'col2'] hanya memuat kolom yang ditentukan dan mengabaikan kolom lainnya. Ini sangat penting untuk berkas CSV berukuran besar—Anda tidak perlu membaca berkas dengan 200 kolom jika hanya memerlukan 5 kolom. Cara ini secara signifikan mengurangi waktu I/O dan penggunaan memori. Teruskan fungsi yang dapat dipanggil untuk memilih kolom berdasarkan pola nama.

import pandas as pd

# Load only 3 of potentially many columns
df = pd.read_csv('big_file.csv',
                 usecols=['user_id', 'event', 'timestamp'])
print(df.columns.tolist())  # ['user_id', 'event', 'timestamp']

Mengontrol dtype saat Memuat Data

Pandas menyimpulkan dtype, tetapi hasilnya bisa keliru—kolom ID yang seluruhnya berisi string numerik dapat menjadi int64, atau kolom harga dengan nilai yang hilang dapat berubah menjadi float64 secara tidak terduga. Gunakan dtype={'col': str} untuk menetapkan tipe secara tegas. Cara ini juga lebih efisien: menetapkan dtype terlebih dahulu melewati tahap penyimpulan dan dapat mempercepat pemuatan berkas besar sebesar 20–30%.

import pandas as pd

df = pd.read_csv('orders.csv', dtype={
    'order_id': str,      # keep as string (not int)
    'price': float,
    'quantity': 'int32'   # use smaller int
})

Menangani Nilai yang Hilang saat Memuat Data

Secara default, Pandas mengenali banyak representasi nilai yang hilang: sel kosong, 'NA', 'NaN', 'N/A', 'null', dan sebagainya. Gunakan na_values=['?', '-', 'missing'] untuk menambahkan token khusus. Gunakan keep_default_na=False untuk menonaktifkan daftar bawaan dan hanya menganggap nilai yang Anda tentukan sebagai nilai yang hilang. Ini mencegah nilai string yang sebenarnya sah seperti 'NA' (sebuah akronim) secara tidak sengaja diperlakukan sebagai NaN.

import pandas as pd

df = pd.read_csv('survey.csv',
                 na_values=['?', '', 'N/A', 'none'])
print(df.isnull().sum())

nrows dan chunksize untuk Berkas Besar

nrows=100 hanya memuat 100 baris pertama—cocok untuk pemeriksaan skema secara cepat pada berkas yang sangat besar. chunksize=10000 mengembalikan iterator TextFileReader yang menghasilkan DataFrames berisi 10000 baris setiap kali, sehingga memungkinkan pemrosesan per bagian untuk berkas yang tidak muat di RAM. Pembacaan per bagian dibahas secara mendalam dalam pelajaran performa tingkat lanjut.

import pandas as pd

# Quick peek at a large file
header_df = pd.read_csv('huge.csv', nrows=5)
print(header_df.dtypes)

# Chunked reading
for chunk in pd.read_csv('huge.csv', chunksize=50000):
    print(chunk.shape)  # process each chunk

Masalah Umum pada read_csv

Perhatikan masalah yang sering terjadi berikut: galat pengodean (gunakan encoding='utf-8' atau 'latin-1'), spasi di awal nama kolom (gunakan skipinitialspace=True), pemisah ribuan pada angka (gunakan thousands=','), dan koma desimal pada angka bergaya Eropa (gunakan decimal=',' dan sep=';'). Jika diabaikan, setiap masalah ini dapat secara diam-diam mengubah kolom numerik menjadi objek.

import pandas as pd

# European format: semicolon sep, comma decimal, UTF-8
df = pd.read_csv('euro_data.csv',
                 sep=';',
                 decimal=',',
                 thousands='.',
                 encoding='utf-8',
                 skipinitialspace=True)

Pemeriksaan Cepat

Uji pemahaman Anda tentang membaca berkas CSV dengan Pandas dari pelajaran ini.

Ringkasan Pelajaran

Dalam pelajaran ini Anda mempelajari: pd.read_csv() adalah fungsi utama untuk memuat data tabular dengan banyak parameter konfigurasi, sep, header, index_col, dan parse_dates mengatur cara berkas ditafsirkan, serta usecols dan dtype meningkatkan performa dan keamanan tipe untuk berkas besar. Selanjutnya, kita akan membaca berkas Excel dan JSON, yang memiliki parameter khusus formatnya masing-masing.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Membaca File CSV” gratis?

Ya — teks lengkap “Membaca File CSV” 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 CSV”?

Muat file CSV dengan pd.read_csv, atur pemisah, baris header, dan kolom indeks, lalu pratinjau hasilnya 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 1 dari 4.

Berapa lama pelajaran “Membaca File CSV” 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

  1. Membaca File CSV
  2. Membaca File Excel dan JSON
  3. Menulis DataFrames ke File
  4. Membaca dari URL dan StringIO
← Kembali ke Pandas & NumPy Academy