Python

Cara Menangani File CSV dengan Python

Cara Menangani File CSV dengan Python
Artikel ini akan membahas tutorial tentang penanganan file “csv” menggunakan Python. Istilah "csv" adalah singkatan dari "nilai yang dipisahkan koma" di mana setiap baris atau baris berisi nilai berbasis teks yang dibatasi oleh koma. Dalam beberapa kasus, "titik koma" juga digunakan sebagai pengganti "koma" untuk memisahkan nilai. Namun, ini tidak membuat banyak perbedaan pada aturan format file dan logika untuk menangani kedua jenis pemisah tetap sama.

Format file CSV paling sering digunakan untuk memelihara database dan spreadsheet. Baris pertama dalam file CSV paling sering digunakan untuk mendefinisikan bidang kolom sementara baris lainnya yang tersisa dianggap sebagai baris. Struktur ini memungkinkan pengguna untuk menyajikan data tabular menggunakan file CSV. File CSV dapat diedit di editor teks apa pun. Namun, aplikasi seperti LibreOffice Calc menyediakan alat pengeditan lanjutan, pengurutan, dan fungsi filter.

Membaca Data dari File CSV Menggunakan Python

Modul CSV di Python memungkinkan Anda membaca, menulis, dan memanipulasi data apa pun yang disimpan dalam file CSV. Untuk membaca file CSV, Anda perlu menggunakan metode “reader” dari modul “csv” Python yang disertakan dalam pustaka standar Python.

Pertimbangkan bahwa Anda memiliki file CSV yang berisi data berikut:

Mangga, Pisang, Apel, Jeruk
50,70,30,90

Baris pertama file mendefinisikan setiap kategori kolom, nama buah dalam hal ini. Baris kedua menyimpan nilai di bawah setiap kolom (stok di tangan). Semua nilai ini dibatasi oleh koma. Jika Anda membuka file ini dalam aplikasi spreadsheet seperti LibreOffice Calc, akan terlihat seperti ini:

Sekarang untuk membaca nilai dari “buah-buahan.csv" menggunakan modul "csv" Python, Anda harus menggunakan metode "reader" dalam format berikut:

impor csv
dengan terbuka("buah.csv") sebagai file:
data_reader = csv.pembaca (berkas)
untuk baris di data_reader:
cetak (baris)

Baris pertama dalam contoh di atas mengimpor modul "csv". Selanjutnya, pernyataan “with open” digunakan untuk membuka file yang tersimpan di hard drive Anda dengan aman (“fruits.csv” dalam hal ini). Objek "data_reader" baru dibuat dengan memanggil metode "reader" dari modul "csv". Metode "pembaca" ini mengambil nama file sebagai argumen wajib, jadi referensi ke "buah".csv” diteruskan ke sana. Selanjutnya, pernyataan loop "untuk" dijalankan untuk mencetak setiap baris dari "buah".file csv”. Setelah menjalankan contoh kode yang disebutkan di atas, Anda akan mendapatkan output berikut:

['50', '70', '30', '90']

Jika Anda ingin menetapkan nomor baris ke output, Anda dapat menggunakan fungsi "enumerate" yang memberikan nomor ke setiap item dalam iterable (mulai dari 0 kecuali diubah).

impor csv
dengan terbuka("buah.csv") sebagai file:
data_reader = csv.pembaca (berkas)
untuk indeks, baris dalam enumerate(data_reader):
cetak (indeks, garis)

Variabel "indeks" menyimpan hitungan untuk setiap elemen. Setelah menjalankan contoh kode yang disebutkan di atas, Anda akan mendapatkan output berikut:

0 ['Mangga', 'Pisang', 'Apel', 'Oranye']
1 ['50', '70', '30', '90']

Karena baris pertama dalam file "csv" biasanya berisi judul kolom, Anda dapat menggunakan fungsi "enumerate" untuk mengekstrak judul berikut:

impor csv
dengan terbuka("buah.csv") sebagai file:
data_reader = csv.pembaca (berkas)
untuk indeks, baris dalam enumerate(data_reader):
jika indeks == 0:
heading = baris
cetak (judul)

Blok "jika" dalam pernyataan di atas memeriksa apakah indeksnya sama dengan nol (baris pertama dalam "buah".file csv”). Jika ya, maka nilai variabel "garis" ditetapkan ke variabel "judul" baru. Setelah menjalankan contoh kode di atas, Anda akan mendapatkan output berikut:

['Mangga', 'Pisang', 'Apel', 'Oranye']

Perhatikan bahwa Anda dapat menggunakan pembatas Anda sendiri saat memanggil “csv.reader” dengan menggunakan argumen “pembatas” opsional dalam format berikut:

impor csv
dengan terbuka("buah.csv") sebagai file:
data_reader = csv.pembaca(file, pembatas=";")
untuk baris di data_reader:
cetak (baris)

Karena dalam file csv, setiap kolom dikaitkan dengan nilai dalam satu baris, Anda mungkin ingin membuat objek "kamus" Python saat membaca data dari file "csv". Untuk melakukannya, Anda perlu menggunakan metode "DictReader", seperti yang ditunjukkan pada kode di bawah ini:

impor csv
dengan terbuka("buah.csv") sebagai file:
data_reader = csv.Pembaca Dict(file)
untuk baris di data_reader:
cetak (baris)

Setelah menjalankan contoh kode yang disebutkan di atas, Anda akan mendapatkan output berikut:

'Mangga': '50', 'Pisang': '70', 'Apel': '30', 'Oranye': '90'

Jadi sekarang Anda memiliki objek kamus yang mengaitkan kolom individual dengan nilai yang sesuai di baris. Ini berfungsi dengan baik jika Anda hanya memiliki satu baris. Mari kita asumsikan bahwa "buah-buahan".File csv” sekarang menyertakan baris tambahan yang menentukan berapa hari yang diperlukan agar stok buah musnah.

Mangga, Pisang, Apel, Jeruk
50,70,30,90
3,1,6,4

Ketika Anda memiliki beberapa baris, menjalankan contoh kode yang sama di atas akan menghasilkan keluaran yang berbeda.

'Mangga': '50', 'Pisang': '70', 'Apel': '30', 'Oranye': '90'
'Mangga': '3', 'Pisang': '1', 'Apel': '6', 'Oranye': '4'

Ini mungkin tidak ideal karena Anda mungkin ingin memetakan semua nilai yang berkaitan dengan satu kolom ke satu pasangan nilai kunci dalam kamus Python. Coba contoh kode ini sebagai gantinya:

impor csv
dengan terbuka("buah.csv") sebagai file:
data_reader = csv.Pembaca Dict(file)
data_dict =
untuk baris di data_reader:
untuk kunci, nilai sejalan.item():
data_dict.setdefault(kunci, [])
data_dict[kunci].tambahkan (nilai)
cetak (data_dict)

Setelah menjalankan contoh kode yang disebutkan di atas, Anda akan mendapatkan output berikut:

'Mango': ['50', '3'], 'Banana': ['70', '1'], 'Apple': ['30', '6'], 'Oranye': ['90 ', '4']

Loop “for” digunakan pada setiap elemen objek “DictReader” untuk mengulang pasangan nilai kunci. Variabel kamus Python baru "data_dict" didefinisikan sebelum itu. Ini akan menyimpan pemetaan data akhir. Di bawah blok loop "untuk" kedua, metode "setdefault" kamus Python digunakan. Metode ini memberikan nilai ke kunci kamus. Jika pasangan nilai kunci tidak ada, yang baru dibuat dari argumen yang ditentukan. Jadi dalam hal ini, daftar kosong baru akan ditetapkan ke kunci jika belum ada. Terakhir, "nilai" ditambahkan ke kunci yang sesuai di objek "data_dict" terakhir.

Menulis Data ke File CSV

Untuk menulis data ke file "csv", Anda harus menggunakan metode "penulis" dari modul "csv". Contoh di bawah ini akan menambahkan baris baru ke "buah" yang ada.file csv”.

impor csv
dengan terbuka("buah.csv", "a") sebagai file:
data_writer = csv.penulis (berkas)
data_penulis.baris tulis([3,1,6,4])

Pernyataan pertama membuka file dalam mode "tambahkan", dilambangkan dengan argumen "a". Selanjutnya metode "penulis" dipanggil dan referensi ke "buah".csv" file diteruskan ke sana sebagai argumen. Metode "writerow" menulis atau menambahkan baris baru ke file.

Jika Anda ingin mengonversi kamus Python ke struktur file "csv" dan menyimpan hasilnya dalam file "csv", coba kode ini:

impor csv
dengan terbuka("buah.csv", "w") sebagai file:
heading = ["Mangga", "Pisang", "Apel", "Oranye"]
data_writer = csv.DictWriter(file, nama bidang=judul)
data_penulis.kepala tulis()
data_penulis.writerow("Mangga": 50, "Pisang": 70, "Apel": 30, "Oranye": 90)
data_penulis.writerow("Mangga": 3, "Pisang": 1, "Apel": 6, "Oranye": 4)

Setelah membuka "buah" kosong.csv" menggunakan pernyataan "dengan terbuka", variabel baru "judul" didefinisikan yang berisi judul kolom. Objek baru “data_writer” dibuat dengan memanggil metode “DictWriter” dan meneruskannya ke referensi “fruits”.csv" dan argumen "nama bidang". Di baris berikutnya, judul kolom ditulis ke file menggunakan metode "writeheader". Dua pernyataan terakhir menambahkan baris baru ke judul terkait yang dibuat pada langkah sebelumnya.

Kesimpulan

File CSV menyediakan cara yang rapi untuk menulis data dalam format tabel. Modul "csv" bawaan Python memudahkan untuk menangani data yang tersedia di file "csv" dan menerapkan logika lebih lanjut di dalamnya.

Game Lab Aplikasi Oculus Teratas
Jika Anda adalah pemilik headset Oculus maka Anda harus tahu tentang sideloading. Sideloading adalah proses menginstal konten non-toko di headset Anda...
10 Game Teratas untuk Dimainkan di Ubuntu
Platform Windows telah menjadi salah satu platform yang mendominasi untuk bermain game karena persentase besar dari game yang berkembang saat ini untu...
5 Game Arkade Terbaik untuk Linux
Saat ini, komputer adalah mesin serius yang digunakan untuk bermain game. Jika Anda tidak bisa mendapatkan skor tinggi baru, Anda akan tahu apa yang s...