Bagaimana cara membaca file csv baris demi baris di python menggunakan panda?

File CSV (comma-separated value) adalah format file umum untuk mentransfer dan menyimpan data. Kemampuan untuk membaca, memanipulasi, dan menulis data ke dan dari file CSV menggunakan Python adalah keterampilan utama yang harus dikuasai oleh ilmuwan data atau analisis bisnis apa pun. Dalam postingan ini, kita akan membahas apa itu file CSV, cara membaca file CSV ke dalam Pandas DataFrames, dan cara menulis DataFrames kembali ke analisis pasca file CSV

Pandas adalah paket manipulasi data paling populer di Python, dan DataFrames adalah tipe data Pandas untuk menyimpan data 2D tabular

Daftar isi

Muat file CSV ke Python Pandas

Proses dasar memuat data dari file CSV ke dalam Pandas DataFrame (dengan semua berjalan dengan baik) dicapai dengan menggunakan fungsi "read_csv" di Pandas

# Load the Pandas libraries with alias 'pd' 
import pandas as pd 

# Read data from file 'filename.csv' 
# (in the same directory that your python process is based)
# Control delimiters, rows, column names with read_csv (see later) 
data = pd.read_csv("filename.csv") 

# Preview the first 5 lines of the loaded data 
data.head()

Meskipun kode ini tampak sederhana, pemahaman tentang tiga konsep dasar diperlukan untuk sepenuhnya memahami dan men-debug pengoperasian prosedur pemuatan data jika Anda mengalami masalah

  1. Memahami ekstensi file dan jenis file – apa sebenarnya arti huruf CSV? . file csv dan a. file txt?
  2. Memahami bagaimana data direpresentasikan di dalam file CSV – jika Anda membuka file CSV, seperti apa data sebenarnya?
  3. Memahami jalur Python dan cara mereferensikan file – apa jalur absolut dan relatif ke file yang Anda muat?
  4. Format dan kesalahan data CSV – kesalahan umum pada fungsi

Masing-masing topik ini dibahas di bawah, dan kami menyelesaikan tutorial ini dengan melihat beberapa mekanisme pemuatan CSV yang lebih canggih dan memberikan beberapa keuntungan dan kerugian luas dari format CSV

1. Ekstensi File dan Jenis File

Langkah pertama untuk bekerja dengan file comma-separated-value (CSV) adalah memahami konsep tipe file dan ekstensi file

  1. Data disimpan di komputer Anda dalam "file" atau wadah individual, masing-masing dengan nama yang berbeda
  2. Setiap file berisi data dari jenis yang berbeda – bagian dalam dokumen Word sangat berbeda dari bagian dalam gambar
  3. Komputer menentukan cara membaca file menggunakan “ekstensi file”, yaitu kode yang mengikuti titik (“. ”) di nama file
  4. So, a filename is typically in the form “.”. Examples:
    • proyek1. DOCX – file Microsoft Word bernama Project1
    • shanes_file. TXT – file teks sederhana bernama shanes_file
    • IMG_5673. JPG – File gambar bernama IMG_5673
    • Jenis dan ekstensi file terkenal lainnya termasuk. XLSX. Excel, PDF. Format Dokumen Portabel, PNG – gambar, ZIP – format file terkompresi, GIF – animasi, MPEG – video, MP3 – musik dll. Lihat daftar lengkap ekstensi di sini
  5. File CSV adalah file dengan tanda “. csv” ekstensi file, mis. g. "data. csv”, “informasi_super. csv”. "CSV" dalam hal ini memberi tahu komputer bahwa data yang terkandung dalam file dalam format "nilai yang dipisahkan koma", yang akan kita bahas di bawah

Ekstensi file disembunyikan secara default di banyak sistem operasi. Langkah pertama yang akan dilakukan oleh insinyur, insinyur perangkat lunak, atau ilmuwan data yang menghargai diri sendiri di komputer baru adalah memastikan bahwa ekstensi file ditampilkan di jendela Explorer (Windows) atau Finder (Mac) mereka

Bagaimana cara membaca file csv baris demi baris di python menggunakan panda?
Folder dengan ekstensi file ditampilkan. Sebelum bekerja dengan file CSV, pastikan Anda dapat melihat ekstensi file di sistem operasi Anda. Konten file yang berbeda dilambangkan dengan ekstensi file, atau huruf setelah titik, dari nama file. e. g. TXT adalah teks, DOCX adalah Microsoft Word, PNG adalah gambar, CSV adalah data nilai yang dipisahkan koma

Untuk memeriksa apakah ekstensi file ditampilkan di sistem Anda, buat dokumen teks baru dengan Notepad (Windows) atau TextEdit (Mac) dan simpan ke folder pilihan Anda. Jika Anda tidak dapat melihat ". txt” di folder Anda ketika Anda melihatnya, Anda harus mengubah pengaturan Anda

  • Di Microsoft Windows. Buka Panel Kontrol > Penampilan dan Personalisasi. Sekarang, klik Folder Options atau File Explorer Option, seperti yang sekarang disebut > tab View. Di tab ini, di bawah Pengaturan Lanjutan, Anda akan melihat opsi Sembunyikan ekstensi untuk jenis file yang dikenal. Hapus centang opsi ini lalu klik Terapkan dan Oke
  • Di Mac OS. Buka Finder > Di menu, klik Finder > Preferences, Klik Advanced, Pilih kotak centang untuk “Show all filename extensions”

2. Representasi Data dalam file CSV

File "CSV", yaitu file dengan tipe file "csv", adalah file teks dasar. Editor teks apa pun seperti NotePad di windows atau TextEdit di Mac, dapat membuka file CSV dan menampilkan isinya. Sublime Text adalah opsi editor teks yang luar biasa dan multifungsi untuk platform apa pun

CSV adalah standar untuk menyimpan data tabular dalam format teks, di mana koma digunakan untuk memisahkan kolom yang berbeda, dan baris baru (carriage return / tekan enter) digunakan untuk memisahkan baris. Biasanya, baris pertama dalam file CSV berisi nama kolom untuk data

Dan kumpulan data tabel contoh dan data format CSV yang sesuai ditunjukkan pada diagram di bawah ini

Bagaimana cara membaca file csv baris demi baris di python menggunakan panda?
File nilai yang dipisahkan koma, atau file CSV, adalah file teks sederhana tempat koma dan baris baru digunakan untuk menentukan data tabular dengan cara terstruktur

Perhatikan bahwa hampir semua data tabular dapat disimpan dalam format CSV – format ini populer karena kesederhanaan dan fleksibilitasnya. Anda dapat membuat file teks di editor teks, simpan dengan a. csv, dan buka file tersebut di Excel atau Google Sheets untuk melihat formulir tabel

Pemisah / Pemisah Lainnya – file TSV

Skema pemisahan koma sejauh ini merupakan metode paling populer untuk menyimpan data tabular dalam file teks

Namun, pemilihan karakter ',' koma untuk kolom pembatas, bagaimanapun, bersifat arbitrer, dan dapat diganti jika diperlukan. Alternatif populer termasuk tab (“\t”) dan semi-colon (“;”). File tab-separate dikenal sebagai file TSV (Tab-Separated Value).

Saat memuat data dengan Panda, fungsi read_csv digunakan untuk membaca file teks apa pun yang dibatasi, dan dengan mengubah pembatas menggunakan parameter sep 

Pembatas di Bidang Teks – Quotechar

Salah satu kerumitan dalam membuat file CSV adalah jika Anda memiliki koma, titik koma, atau tab sebenarnya di salah satu bidang teks yang ingin Anda simpan. Dalam hal ini, penting untuk menggunakan "karakter kutipan" di file CSV untuk membuat bidang ini

Karakter kutipan dapat ditentukan dalam Pandas. read_csv menggunakan argumen quotechar . Secara default (seperti pada banyak sistem), ini ditetapkan sebagai tanda kutip standar (“). Koma apa pun (atau pembatas lainnya seperti yang ditunjukkan di bawah) yang muncul di antara dua karakter kutipan akan diabaikan sebagai pemisah kolom

Dalam contoh yang ditampilkan, file yang dipisahkan titik koma, dengan tanda kutip sebagai kutipan dimuat ke dalam Pandas, dan ditampilkan di Excel. Penggunaan kutipan memungkinkan kolom "NickName" mengandung titik koma tanpa dibagi menjadi lebih banyak kolom

Bagaimana cara membaca file csv baris demi baris di python menggunakan panda?
Selain koma dalam file CSV, data yang dipisahkan Tab dan dipisahkan titik koma juga populer. Karakter kutipan digunakan jika data dalam kolom mungkin berisi karakter pemisah. Dalam hal ini, kolom 'NickName' berisi karakter titik koma, sehingga kolom ini "dikutip". Tentukan karakter pemisah dan kutipan dalam panda. read_csv

3. Python – Jalur, Folder, File

Saat Anda menentukan nama file ke Pandas. read_csv, Python akan mencari di "direktori kerja saat ini" Anda. Direktori kerja Anda biasanya adalah direktori tempat Anda memulai proses Python atau notebook Jupyter

Bagaimana cara membaca file csv baris demi baris di python menggunakan panda?
Panda mencari 'direktori kerja saat ini' untuk nama file yang Anda tentukan saat membuka atau memuat file. FileNotFoundError dapat disebabkan oleh nama file yang salah eja, atau direktori kerja yang salah

Menemukan Jalur Python Anda

Jalur Python Anda dapat ditampilkan menggunakan modul os bawaan. Modul OS adalah untuk fungsionalitas yang bergantung pada sistem operasi ke dalam program dan skrip Python

Untuk menemukan direktori kerja Anda saat ini, fungsi yang diperlukan adalah os.getcwd(). Fungsi  os.listdir() dapat digunakan untuk menampilkan semua file dalam direktori, yang merupakan pemeriksaan yang baik untuk melihat apakah file CSV yang Anda muat ada di direktori seperti yang diharapkan

# Find out your current working directory
import os
print(os.getcwd())

# Out: /Users/shane/Documents/blog

# Display all of the files found in your current working directory
print(os.listdir(os.getcwd())


# Out: ['test_delimted.ssv', 'CSV Blog.ipynb', 'test_data.csv']
_

Pada contoh di atas, direktori kerja saya saat ini ada di direktori '/Users/Shane/Document/blog'. File apa pun yang ditempatkan di direktori ini akan segera tersedia untuk fungsi atau fungsi Pandas read csv

Alih-alih memindahkan file data yang diperlukan ke direktori kerja, Anda juga dapat mengubah direktori kerja saat ini ke direktori tempat file berada menggunakan os.chdir()

Memuat File. Jalur Absolut dan Relatif

Saat menentukan nama file ke fungsi read_csv, Anda dapat menyediakan jalur file absolut atau relatif

  • Jalur relatif adalah jalur ke file jika Anda memulai dari direktori kerja saat ini. Di jalur relatif, biasanya file akan berada di subdirektori dari direktori kerja dan jalur tidak akan dimulai dengan penentu drive, mis. g. (data/file_tes. csv). Karakter '. ’ digunakan untuk pindah ke direktori induk di jalur relatif
  • Jalur absolut adalah jalur lengkap dari dasar sistem file Anda ke file yang ingin Anda muat, mis. g. c. /Documents/Shane/data/test_file. csv. Jalur absolut akan dimulai dengan penentu drive (c. / atau d. / di Windows, atau '/' di Mac atau Linux)

Direkomendasikan dan lebih disukai untuk menggunakan jalur relatif jika memungkinkan dalam aplikasi, karena jalur absolut tidak mungkin berfungsi pada komputer yang berbeda karena struktur direktori yang berbeda

Bagaimana cara membaca file csv baris demi baris di python menggunakan panda?
Memuat file yang sama dengan Pandas read_csv menggunakan jalur relatif dan absolut. Jalur relatif adalah arah ke file yang dimulai dari direktori kerja Anda saat ini, di mana jalur absolut selalu dimulai dari dasar sistem file Anda

4. Kesalahan Memuat File CSV Panda

Kesalahan paling umum yang akan Anda dapatkan saat memuat data dari file CSV ke Panda adalah

  1. FileNotFoundError: File b'filename.csv' does not exist
    Kesalahan File Tidak Ditemukan biasanya merupakan masalah dengan penyiapan jalur, direktori saat ini, atau kebingungan nama file (ekstensi file dapat berperan di sini. )
  2. # Find out your current working directory
    import os
    print(os.getcwd())
    
    # Out: /Users/shane/Documents/blog
    
    # Display all of the files found in your current working directory
    print(os.listdir(os.getcwd())
    
    
    # Out: ['test_delimted.ssv', 'CSV Blog.ipynb', 'test_data.csv']
    _0
    Kesalahan Dekode Unicode biasanya disebabkan oleh tidak ditentukannya penyandian file, dan terjadi jika Anda memiliki file dengan karakter non-standar. Untuk perbaikan cepat, coba buka file dalam Sublime Text, dan simpan kembali dengan penyandian 'UTF-8'
  3. # Find out your current working directory
    import os
    print(os.getcwd())
    
    # Out: /Users/shane/Documents/blog
    
    # Display all of the files found in your current working directory
    print(os.listdir(os.getcwd())
    
    
    # Out: ['test_delimted.ssv', 'CSV Blog.ipynb', 'test_data.csv']
    _1
    Kesalahan Parse dapat disebabkan dalam keadaan yang tidak biasa terkait dengan format data Anda – coba tambahkan parameter “engine='python'” ke pemanggilan fungsi read_csv;

File CSV Baca Tingkat Lanjut

Ada beberapa parameter fleksibel tambahan dalam fungsi Pandas read_csv() yang berguna untuk dimiliki dalam gudang teknik ilmu data Anda

Menentukan Tipe Data

Seperti disebutkan sebelumnya, file CSV tidak berisi informasi jenis apa pun untuk data. Tipe data disimpulkan melalui pemeriksaan baris atas file, yang dapat menyebabkan kesalahan. Untuk menentukan jenis data secara manual untuk kolom yang berbeda, parameter dtype dapat digunakan dengan kamus nama kolom dan jenis data yang akan diterapkan, misalnya.

# Find out your current working directory
import os
print(os.getcwd())

# Out: /Users/shane/Documents/blog

# Display all of the files found in your current working directory
print(os.listdir(os.getcwd())


# Out: ['test_delimted.ssv', 'CSV Blog.ipynb', 'test_data.csv']
_2

Perhatikan bahwa untuk tanggal dan waktu tanggal, format, kolom, dan perilaku lainnya dapat disesuaikan menggunakan parameter parse_dates, date_parser, dayfirst, keep_date 

Melewati dan Memilih Baris dan Kolom Dari File

Parameter nrows menentukan berapa banyak baris dari bagian atas file CSV yang akan dibaca, yang berguna untuk mengambil sampel file besar tanpa memuat sepenuhnya. Demikian pula, parameter skiprows memungkinkan Anda menentukan baris yang akan ditinggalkan, baik di awal file (berikan int), atau di seluruh file (berikan daftar indeks baris). Demikian pula, parameter usecols dapat digunakan untuk menentukan kolom mana dalam data yang akan dimuat

Simbol Nilai Hilang Kustom

Saat data diekspor ke CSV dari sistem yang berbeda, nilai yang hilang dapat ditentukan dengan token yang berbeda. Parameter na_values ​​memungkinkan Anda menyesuaikan karakter yang dikenali sebagai nilai yang hilang. Nilai default yang ditafsirkan sebagai NA/NaN adalah. ‘’, ‘#N/A’, ‘#N/A N/A’, ‘#NA’, ‘-1. #IND’, ‘-1. #QNAN’, ‘-NaN’, ‘-nan’, ‘1. #IND’, ‘1. #QNAN’, ‘N/A’, ‘NA’, ‘NULL’, ‘NaN’, ‘n/a’, ‘nan’, ‘null’

# Advanced CSV loading example

data = pd.read_csv(
    "data/files/complex_data_example.tsv",      # relative python path to subdirectory
    sep='\t' 					# Tab-separated value file.
    quotechar="'",				# single quote allowed as quote character
    dtype={"salary": int}, 		        # Parse the salary column as an integer 
    usecols=['name', 'birth_date', 'salary'].   # Only load the three columns specified.
    parse_dates=['birth_date'], 		# Intepret the birth_date column as a date
    skiprows=10, 				# Skip the first 10 rows of the file
    na_values=['.', '??'] 			# Take any '.' or '??' values as NA
)

Kelebihan dan Kekurangan Format CSV

Seperti semua keputusan teknis, menyimpan data Anda dalam format CSV memiliki kelebihan dan kekurangan. Waspadai potensi jebakan dan masalah yang akan Anda temui saat memuat, menyimpan, dan bertukar data dalam format CSV

Di sisi positifnya

  • Format CSV bersifat universal dan data dapat dimuat oleh hampir semua perangkat lunak
  • File CSV mudah dipahami dan di-debug dengan editor teks dasar
  • File CSV dibuat dengan cepat dan dimuat ke dalam memori sebelum dianalisis

Namun, format CSV memiliki beberapa sisi negatif

  • Tidak ada informasi tipe data yang disimpan dalam file teks, semua pengetikan (tanggal, int vs float, string) disimpulkan dari data saja
  • Tidak ada informasi pemformatan atau tata letak yang dapat disimpan – hal-hal seperti font, batas, pengaturan lebar kolom dari Microsoft Excel akan hilang
  • Pengkodean file dapat menjadi masalah jika ada karakter yang tidak kompatibel dengan ASCII di bidang teks
  • Format CSV tidak efisien; . Namun Anda akan menemukan bahwa data CSV Anda terkompresi dengan baik menggunakan kompresi zip

Selain itu, dalam upaya untuk mengatasi beberapa kelemahan ini, dua pengembang ilmu data terkemuka di ekosistem R dan Python, Wes McKinney dan Hadley Wickham, baru-baru ini memperkenalkan Feather Format, yang bertujuan untuk menjadi format yang cepat, sederhana, terbuka,

Bagaimana cara mengulangi baris dalam python CSV?

Bagaimana cara membaca file CSV berturut-turut dengan Python? .
Buka file 'siswa. .
Buat objek pembaca (iterator) dengan mengirimkan objek file di csv. .
Sekarang setelah kita memiliki objek pembaca ini, yang merupakan iterator, maka gunakan iterator ini dengan for loop untuk membaca baris individu csv sebagai daftar nilai

Bagaimana cara membaca baris tertentu di panda?

Dalam Pandas DataFrame kita dapat menemukan nilai baris yang ditentukan dengan using function iloc() . Dalam fungsi ini kami melewatkan nomor baris sebagai parameter.

Metode mana yang digunakan untuk membaca satu baris dalam file CSV python?

Pembacaan dari file CSV dilakukan dengan menggunakan objek pembaca . File CSV dibuka sebagai file teks dengan fungsi open() bawaan Python, yang mengembalikan objek file. Ini kemudian diteruskan ke pembaca , yang melakukan pekerjaan berat.

Bagaimana cara mengulangi baris dalam panda?

Ada banyak cara untuk mengulang baris DataFrame atau Seri di panda, masing-masing dengan kelebihan dan kekurangannya sendiri. .
Metode paling mudah untuk mengulangi baris adalah dengan metode iterrows() , seperti itu
iterrows() mengembalikan indeks baris serta baris itu sendiri