Python - Memproses Data CSV
Membaca data dari CSV (nilai dipisahkan koma) adalah kebutuhan mendasar dalam Ilmu Data. Seringkali, kami mendapatkan data dari berbagai sumber yang dapat diekspor ke format CSV sehingga dapat digunakan oleh sistem lain. Pustaka Panadas menyediakan fitur yang dapat kita gunakan untuk membaca file CSV secara penuh maupun sebagian untuk hanya grup kolom dan baris yang dipilih.
Masukan sebagai File CSV
File csv adalah file teks yang nilai-nilai di kolomnya dipisahkan dengan koma. Mari pertimbangkan data berikut yang ada di file bernamainput.csv.
Anda dapat membuat file ini menggunakan windows notepad dengan menyalin dan menempelkan data ini. Simpan file sebagaiinput.csv menggunakan opsi save As All files (*. *) di notepad.
id,name,salary,start_date,dept
1,Rick,623.3,2012-01-01,IT
2,Dan,515.2,2013-09-23,Operations
3,Tusar,611,2014-11-15,IT
4,Ryan,729,2014-05-11,HR
5,Gary,843.25,2015-03-27,Finance
6,Rasmi,578,2013-05-21,IT
7,Pranab,632.8,2013-07-30,Operations
8,Guru,722.5,2014-06-17,Finance
Membaca File CSV
Itu read_csvfungsi pustaka pandas digunakan untuk membaca konten file CSV ke dalam lingkungan python sebagai DataFrame pandas. Fungsi ini dapat membaca file dari OS dengan menggunakan jalur yang benar ke file tersebut.
import pandas as pd
data = pd.read_csv('path/input.csv')
print (data)
Ketika kita mengeksekusi kode di atas, hasilnya adalah sebagai berikut. Harap perhatikan bagaimana kolom tambahan yang dimulai dengan nol sebagai indeks telah dibuat oleh fungsi tersebut.
id name salary start_date dept
0 1 Rick 623.30 2012-01-01 IT
1 2 Dan 515.20 2013-09-23 Operations
2 3 Tusar 611.00 2014-11-15 IT
3 4 Ryan 729.00 2014-05-11 HR
4 5 Gary 843.25 2015-03-27 Finance
5 6 Rasmi 578.00 2013-05-21 IT
6 7 Pranab 632.80 2013-07-30 Operations
7 8 Guru 722.50 2014-06-17 Finance
Membaca Baris Tertentu
Itu read_csvfungsi pustaka pandas juga dapat digunakan untuk membaca beberapa baris tertentu untuk kolom tertentu. Kami memotong hasil dari fungsi read_csv menggunakan kode yang ditunjukkan di bawah ini untuk 5 baris pertama untuk kolom bernama gaji.
import pandas as pd
data = pd.read_csv('path/input.csv')
# Slice the result for first 5 rows
print (data[0:5]['salary'])
Ketika kita mengeksekusi kode di atas, hasilnya adalah sebagai berikut.
0 623.30
1 515.20
2 611.00
3 729.00
4 843.25
Name: salary, dtype: float64
Membaca Kolom Tertentu
Itu read_csvfungsi pustaka pandas juga dapat digunakan untuk membaca beberapa kolom tertentu. Kami menggunakan metode pengindeksan multi-sumbu yang disebut.loc()untuk tujuan ini. Kami memilih untuk menampilkan kolom gaji dan nama untuk semua baris.
import pandas as pd
data = pd.read_csv('path/input.csv')
# Use the multi-axes indexing funtion
print (data.loc[:,['salary','name']])
Ketika kita mengeksekusi kode di atas, hasilnya adalah sebagai berikut.
salary name
0 623.30 Rick
1 515.20 Dan
2 611.00 Tusar
3 729.00 Ryan
4 843.25 Gary
5 578.00 Rasmi
6 632.80 Pranab
7 722.50 Guru
Membaca Kolom dan Baris Tertentu
Itu read_csvfungsi pustaka pandas juga dapat digunakan untuk membaca beberapa kolom dan baris tertentu. Kami menggunakan metode pengindeksan multi-sumbu yang disebut.loc()untuk tujuan ini. Kami memilih untuk menampilkan kolom gaji dan nama untuk beberapa baris.
import pandas as pd
data = pd.read_csv('path/input.csv')
# Use the multi-axes indexing funtion
print (data.loc[[1,3,5],['salary','name']])
Ketika kita mengeksekusi kode di atas, hasilnya adalah sebagai berikut.
salary name
1 515.2 Dan
3 729.0 Ryan
5 578.0 Rasmi
Membaca Kolom Tertentu untuk Rentang Baris
Itu read_csvfungsi pustaka pandas juga dapat digunakan untuk membaca beberapa kolom dan rentang baris tertentu. Kami menggunakan metode pengindeksan multi-sumbu yang disebut.loc()untuk tujuan ini. Kami memilih untuk menampilkan kolom gaji dan nama untuk beberapa baris.
import pandas as pd
data = pd.read_csv('path/input.csv')
# Use the multi-axes indexing funtion
print (data.loc[2:6,['salary','name']])
Ketika kita mengeksekusi kode di atas, hasilnya adalah sebagai berikut.
salary name
2 611.00 Tusar
3 729.00 Ryan
4 843.25 Gary
5 578.00 Rasmi
6 632.80 Pranab