Pandas Baca CSV

Kode Lima Detik

import pandas as pd
data = pd.read_csv('nama_file.csv', sep=',', skiprows=0)

Ref: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html


Pandas adalah library python utama untuk melakukan analisa dan manipulasi data. Berbeda dengan numpy, pandas lebih mudah digunakan oleh mereka yang migrasi dari Excel, karena menyediakan tabel dua dimensi, bernama DataFrame, yang mirip kolom dan baris pada tabel.

Tidak mengejutkan karena pandas dikembangkan oleh Wes McKinney pada saat bekerja di AQR Capital Management sebagai alat bantu untuk melakukan analisa kuantitatif pada data finansial. Faktanya dalam dunia keuangan tabel memang sangat vital.

Berkas comma-separated value (csv) adalah format utama data yang kita olah, terutama sebab ukurannya yang kecil karena hanya menyimpan nilai tanpa ubo rampe lain seperti format tulisan, garis dan lainnya.

Meski bernama csv namun pemisah antar nilai tidak melulu hanya koma, dapat pula bentuk lain, misal titik koma (;), tab (\t), pipa (|) atau bahkan spasi (namun tentu saja tidak disarankan).

Kita akan menggunakan data jumlah pohon menghasilkan dan produksi buah menurut jenis tanaman di Kota Batu Tahun 2016. yang diberi nama jumlah-pohon-menghasilkan-dan-produksi-buah-2016_koma.csv.

Langkah Kerja

Install pandas, jika belum pernah melakukannya. Melalui command prompt/console/terminal ketik.

pip install pandas

Jika menggunakan Jupyter Notebook dapat menggunakan perintah ini pada cell.

!pip install pandas

Berkas csv dengan pemisah koma

Untuk membaca csv, pandas menydiakan fungsi read_csv, contoh penggunaanya seperti ini.

import pandas as pd
koma = pd.read_csv('jumlah-pohon-menghasilkan-dan-produksi-buah-2016_koma.csv')

Ups! Data tidak terbaca semestinya. Hal ini terjadi karena data dimulai pada baris ke-4. Untungnya read_csv pandas sudah mendukung kondisi itu.

Gunakan parameter skiprows=n, dengan n adalah jumlah baris teratas yang akan dilewati.

koma2 = pd.read_csv('jumlah-pohon-menghasilkan-dan-produksi-buah-2016_koma.csv', skiprows=3)

Ingin memberi nama kolom? isi parameter names dengan daftar nama kolom yang diinginkan.

kolom = [
    'jenis_tanaman',
    'tri_1_tanaman', 'tri_1_produksi',
    'tri_2_tanaman', 'tri_2_produksi',
    'tri_3_tanaman', 'tri_3_produksi',
    'tri_4_tanaman', 'tri_4_produksi'
]
koma3 = pd.read_csv('jumlah-pohon-menghasilkan-dan-produksi-buah-2016_koma.csv', skiprows=3, names=kolom)

Ingin menghilangkan beberapa baris terakhir?

Manfaatkan parameter skipfooter.

kolom = [
    'jenis_tanaman',
    'tri_1_tanaman', 'tri_1_produksi',
    'tri_2_tanaman', 'tri_2_produksi',
    'tri_3_tanaman', 'tri_3_produksi',
    'tri_4_tanaman', 'tri_4_produksi'
]
koma4 = pd.read_csv('jumlah-pohon-menghasilkan-dan-produksi-buah-2016_koma.csv', skiprows=3, names=kolom, skipfooter=2)

Jika tidak suka dengan peringatan berwarna merah seperti gambar di atas, tambahkan parameter engine=’python’.

kolom = [
    'jenis_tanaman',
    'tri_1_tanaman', 'tri_1_produksi',
    'tri_2_tanaman', 'tri_2_produksi',
    'tri_3_tanaman', 'tri_3_produksi',
    'tri_4_tanaman', 'tri_4_produksi'
]
koma5 = pd.read_csv('jumlah-pohon-menghasilkan-dan-produksi-buah-2016_koma.csv', skiprows=3, names=kolom, skipfooter=2, engine='python')

Berkas csv dengan pemisah selain koma

Cukup gunakan parameter sep atau delimiter jika mendapatkan csv file dengan pemisah selain koma.

tab1 = pd.read_csv('jumlah-pohon-menghasilkan-dan-produksi-buah-2016_tab.csv', sep='\t')

Kode di atas untuk berkas csv dengan pemisah berupa tab.

spasi1 = pd.read_csv('jumlah-pohon-menghasilkan-dan-produksi-buah-2016_spasi.csv', delim_whitespace=True)

Kode terakhir, dengan parameter delim_whitespace=True untuk membaca file csv dengan pemisah berupa spasi, yang tidak disarankan.

Penggunaan spasi sebagai pemisah tidak disarankan karena akan membuat data menjadi tidak terbaca seperti di atas.


Notebook dan data untuk tulisan ini dapat diakses di sini.


Lebih lanjut:

Cover Photo by Ying Wu on Unsplash

3 Replies to “Pandas Baca CSV”

  1. Pingback: Pandas Baca HTML

Leave a Reply

Your email address will not be published. Required fields are marked *