Membaca dan Menulis File CSV dengan Python menggunakan Modul CSV & Panda

Daftar Isi:

Anonim

Apa itu file CSV?

File CSV adalah jenis file teks biasa yang menggunakan struktur khusus untuk menyusun data tabel. CSV adalah format umum untuk pertukaran data karena ringkas, sederhana dan umum. Banyak layanan online memungkinkan penggunanya mengekspor data tabel dari situs web ke dalam file CSV. File CSV akan terbuka ke Excel, dan hampir semua database memiliki alat untuk memungkinkan impor dari file CSV. Format standar ditentukan oleh data baris dan kolom. Selain itu, setiap baris diakhiri oleh baris baru untuk memulai baris berikutnya. Juga di dalam baris, setiap kolom dipisahkan dengan koma.

Dalam tutorial ini, Anda akan mempelajari:

  • Apa itu file CSV?
  • File Contoh CSV.
  • Modul CSV Python
  • Fungsi Modul CSV
  • Membaca File CSV
  • Membaca sebagai Kamus
  • Menulis ke File CSV
  • Membaca File CSV dengan Panda
  • Menulis ke File CSV dengan Pandas

File Contoh CSV.

Data dalam bentuk tabel juga disebut CSV (nilai dipisahkan koma) - secara harfiah "nilai dipisahkan koma". Ini adalah format teks yang ditujukan untuk penyajian data tabel. Setiap baris file adalah satu baris tabel. Nilai kolom individual dipisahkan oleh simbol pemisah - koma (,), titik koma (;) atau simbol lainnya. CSV dapat dengan mudah dibaca dan diproses dengan Python.

Simak Tabe berikut ini

Data Tabel

Bahasa pemrograman Dirancang oleh Muncul Perpanjangan
Python Guido van Rossum 1991 .py
Jawa James Gosling 1995 .Jawa
C ++ Bjarne Stroustrup 1983 .cpp

Anda dapat merepresentasikan tabel ini di csv seperti di bawah ini.

Data CSV

Bahasa pemrograman, Dirancang oleh, Muncul, Ekstensi

Python, Guido van Rossum, 1991, .py

Java, James Gosling, 1995, .java

C ++, Bjarne Stroustrup, 1983, .cpp

Seperti yang Anda lihat, setiap baris adalah baris baru, dan setiap kolom dipisahkan dengan koma. Ini adalah contoh tampilan file CSV.

Unduh Data CSV

Modul CSV Python

Python menyediakan modul CSV untuk menangani file CSV. Untuk membaca / menulis data, Anda perlu melakukan loop melalui baris CSV. Anda perlu menggunakan metode split untuk mendapatkan data dari kolom tertentu.

Fungsi Modul CSV

Dalam dokumentasi modul CSV, Anda dapat menemukan fungsi-fungsi berikut:

  • csv.field_size_limit - mengembalikan ukuran bidang maksimum
  • csv.get_dialect - dapatkan dialek yang diasosiasikan dengan nama tersebut
  • csv.list_dialects - menampilkan semua dialek terdaftar
  • csv.reader - membaca data dari file csv
  • csv.register_dialect - mengasosiasikan dialek dengan nama
  • csv.writer - menulis data ke file csv
  • csv.unregister_dialect - menghapus dialek yang terkait dengan nama registri dialek
  • csv.QUOTE_ALL - Kutip semuanya, apa pun jenisnya.
  • csv.QUOTE_MINIMAL - Bidang kutipan dengan karakter khusus
  • csv.QUOTE_NONNUMERIC - Kutip semua bidang yang bukan nilai angka
  • csv.QUOTE_NONE - Jangan mengutip apa pun di keluaran

Dalam tutorial ini, kita akan fokus hanya pada fungsi pembaca dan penulis yang memungkinkan Anda untuk mengedit, memodifikasi, dan memanipulasi data dalam file CSV.

Cara Membaca File CSV

Untuk membaca data dari file CSV, Anda harus menggunakan fungsi pembaca untuk menghasilkan objek pembaca.

Fungsi pembaca dikembangkan untuk mengambil setiap baris file dan membuat daftar semua kolom. Kemudian, Anda harus memilih kolom yang Anda inginkan untuk data variabel.

Kedengarannya jauh lebih rumit dari yang sebenarnya. Mari kita lihat contoh ini, dan kita akan mengetahui bahwa bekerja dengan file csv tidak terlalu sulit.

#import necessary modulesimport csvwith open('X:\data.csv','rt')as f:data = csv.reader(f)for row in data:print(row)

Saat Anda menjalankan program di atas, hasilnya adalah:

['Programming language; Designed by; Appeared; Extension']['Python; Guido van Rossum; 1991; .py']['Java; James Gosling; 1995; .java']['C++; Bjarne Stroustrup;1983;.cpp']

Cara Membaca CSV sebagai Kamus

Anda juga dapat menggunakan DictReader untuk membaca file CSV. Hasilnya diinterpretasikan sebagai kamus di mana baris tajuk adalah kuncinya, dan baris lainnya adalah nilai.

Perhatikan kode berikut

#import necessary modulesimport csvreader = csv.DictReader(open("file2.csv"))for raw in reader:print(raw)

Hasil dari kode ini adalah:

OrderedDict([('Programming language', 'Python'), ('Designed by', 'Guido van Rossum'), (' Appeared', ' 1991'), (' Extension', ' .py')])OrderedDict([('Programming language', 'Java'), ('Designed by', 'James Gosling'), (' Appeared', ' 1995'), (' Extension', ' .java')])OrderedDict([('Programming language', 'C++'), ('Designed by', ' Bjarne Stroustrup'), (' Appeared', ' 1985'), (' Extension', ' .cpp')])

Dan cara membaca data dari file CSV ini jauh lebih mudah daripada metode sebelumnya. Namun, ini bukanlah cara terbaik untuk membaca data.

Bagaimana menulis File CSV

Ketika Anda memiliki sekumpulan data yang ingin Anda simpan dalam file CSV, Anda harus menggunakan fungsi writer (). Untuk mengulang data di atas baris (baris), Anda harus menggunakan fungsi writerow ().

Perhatikan contoh berikut. Kami menulis data ke dalam file "writeData.csv" di mana pembatasnya adalah apostrof.

#import necessary modulesimport csvwith open('X:\writeData.csv', mode='w') as file:writer = csv.writer(file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)#way to write to csv filewriter.writerow(['Programming language', 'Designed by', 'Appeared', 'Extension'])writer.writerow(['Python', 'Guido van Rossum', '1991', '.py'])writer.writerow(['Java', 'James Gosling', '1995', '.java'])writer.writerow(['C++', 'Bjarne Stroustrup', '1985', '.cpp'])

Hasil dalam file csv adalah:

Programming language, Designed by, Appeared, ExtensionPython, Guido van Rossum, 1991, .pyJava, James Gosling, 1995, .javaC++, Bjarne Stroustrup,1983,.cpp

Membaca File CSV dengan Panda

Pandas adalah pustaka sumber terbuka yang memungkinkan Anda melakukan manipulasi data dengan Python. Panda menyediakan cara mudah untuk membuat, memanipulasi, dan menghapus data.

Anda harus memasang pustaka pandas dengan perintah pip install pandas . Di windows, Anda akan menjalankan perintah ini di Command Prompt sementara di Linux di Terminal.

Membaca CSV menjadi pandas DataFrame sangat cepat dan mudah:

#import necessary modulesimport pandasresult = pandas.read_csv('X:\data.csv')print(result)

Hasil:

Programming language, Designed by, Appeared, Extension0 Python, Guido van Rossum, 1991, .py1 Java, James Gosling, 1995, .java2 C++, Bjarne Stroustrup,1983,.cpp 

Perpustakaan yang sangat berguna. Hanya dalam tiga baris kode Anda mendapatkan hasil yang sama seperti sebelumnya. Panda tahu bahwa baris pertama CSV berisi nama kolom, dan itu akan menggunakannya secara otomatis.

Menulis ke File CSV dengan Pandas

Menulis ke file CSV dengan Pandas semudah membaca. Di sini Anda bisa meyakinkannya. Pertama, Anda harus membuat DataFrame berdasarkan kode berikut.

from pandas import DataFrameC = {'Programming language': ['Python','Java', 'C++'],'Designed by': ['Guido van Rossum', 'James Gosling', 'Bjarne Stroustrup'],'Appeared': ['1991', '1995', '1985'],'Extension': ['.py', '.java', '.cpp'],}df = DataFrame(C, columns= ['Programming language', 'Designed by', 'Appeared', 'Extension'])export_csv = df.to_csv (r'X:\pandaresult.csv', index = None, header=True) # here you have to write path, where result file will be storedprint (df)

Ini hasilnya

Programming language, Designed by, Appeared, Extension0 Python, Guido van Rossum, 1991, .py1 Java, James Gosling, 1995, .java2 C++, Bjarne Stroustrup,1983,.cpp

Dan file CSV dibuat di lokasi yang ditentukan.

Kesimpulan

Nah, sekarang Anda sudah tahu bagaimana menggunakan metode 'csv' dan juga membaca dan menulis data dalam format CSV. File CSV banyak digunakan dalam aplikasi perangkat lunak karena mudah dibaca dan dikelola, dan ukurannya yang kecil membuatnya relatif cepat untuk pemrosesan dan transmisi.

Modul csv menyediakan berbagai fungsi dan kelas yang memungkinkan Anda membaca dan menulis dengan mudah. Anda dapat melihat dokumentasi resmi Python dan menemukan beberapa tip dan modul yang lebih menarik. CSV adalah cara terbaik untuk menyimpan, melihat, dan mengirim data. Sebenarnya, tidak terlalu sulit untuk dipelajari seperti yang terlihat di awal. Tetapi dengan sedikit latihan, Anda akan menguasainya.

Panda adalah alternatif yang bagus untuk membaca file CSV.

Selain itu, ada cara lain untuk mengurai file teks dengan pustaka seperti ANTLR, PLY, dan PlyPlus. Mereka semua dapat menangani penguraian tugas berat, dan jika manipulasi String tidak berfungsi, ada ekspresi reguler yang dapat Anda gunakan.