Python Data Science : Pandas — Part 1

Muhammad Yunus
8 min readMar 30, 2020

--

Advantages Library and Read/Write Files CSV/ Excel/JSON

Banner Image [ Source ]

Pandas merupakan library opensource dengan BSD licence, menawarkan high-performance, easy-to-use data structure dan data analysis tools untuk bahasa pemrograman Python [1]. Pandas memungkinkan datascientist untuk melakukan import data dari berbagai sumber mulai dari CSV, Excel, SQL bahkan sampai binary HDF5. Pandas memiliki banyak variasi operasi data manipulation sepery groupby, join, merge, melt, concatenation dan juga untuk keperluan data cleansing seperti filtering dan replacing [2].

Data Frame

Pandas merepresentasikan data sebagai Data Frame. Data Frame sendiri merupakan struktur data berbentuk tabel dua dimensi dengan ukuran yang dapat berubah-ubah dan dapat menampung data heterogen (integer, text, decimal, dll.). Data Frame disusun oleh Baris, Kolom dan Data [3].

Pandas Data Frame [Source]

Advantages Pandas Library

1. Kemampuan untuk menghandle data yang sangat besar

Ketika membaca file mengunakan Pandas, kita dapat memilah file tersebut menjadi beberapa bagian kecil. Setelah itu kita bisa melakukan preprocessing data untuk mendapatkan data yang sudah bersih dan hanya diperlukan [4].

2. Memiliki Feature yang sangat banyak

Pandas memiliki banyak fitur yang diperlukan untuk data analisis seperti untuk melakukan filtering dengan beragam kondisi atau segmentasi dan segregasi data sesuai dengan preferensi[5].

3. Handling missing data

Pandas dapat menghandle missing data dengan menggunakan function fillna(). Nilai yang hilang dapat diganti dengan nilai khusus atau nilai bertambah seperti rata-rata, median [6][7].

4. Cleaning up

Pandas dapat mendeteksi data yang hilang, tidak sesuai, atau tidak standar dan menggantinya dengan format yang umum atau umumnya diisi dengan median data. Function isnull() pada pandas dapat mengidentifikasi data pada baris kolom tertentu apakah kosong atau tidak, dan dengan mengunakan function fillna() kita bisa mengisinya dengan nilai yang standar [6][8].

5. Input and output tools dengan support banyak format file

Pandas dapat membaca dan menulis dari dan ke berbagai jenis file mulai dari CSV, Excel, SQL, JSON, bahkan binary data seperti HDF5 [6][2].

6. Merging and joining of Dataframe

Pandas memiliki kemampuan untuk melakukan merging dan joining data sama seperti pada RDBMS SQL [9]. Jenis Merging dan joining data frame yang bisa dilakukan oleh Pandas, sebagai berikut :

  1. Inner Merge / Inner join
  2. Left Merge / Left outer join
  3. Right Merge / Right outer join
  4. Outer Merge / Full outer join

7. A lot of time series

Pandas memberikan kemudahan dalam analisis data time series, yang dapat menjadikan index sebagai date time value, konversi antar time zone, konversi dari string date time menjadi date time, advance time series filtering, timeseries data plotting, rolling_data by average, sum, max, min dan lain sebagainya [10][11].

8. Visualization

Pandas menyediakan fitur plot data yang sangat mudah digunakan. mulai dari histogram, line chart, bar chart, box plot, scatter plot, kernel density plot sampai plotting data untuk data timeseries [12].

Pandas Hands On

Persiapan :

  1. Install Anaconda (Python package manager), Jupyter Notebook (python IDE) dan library yang diperlukan. Bisa dilihat disini.
  2. Pengetahuan dasar Python Programming. Bisa dilihat disini.
  3. Download Dataset (kali ini akan menggunakan dataset COVID-19 dari kaggle.com). dapat didownload disini.

Basic Pandas Operation

Read File (CSV, EXCEL, JSON) menggunakan Pandas.

Terlebih dahulu kita buka jupyter notebook. Setelah itu buat file notebook baru. Pastikan file CSV dataset COVID-19 yang telah didownload satu folder dengan file notebook yang dibuat.

Setelah itu kita import library pandas,

import pandas as pd

untuk cek versi pandas yang digunakan, jalankan command berikut,

pd.__version__
cek versi Pandas

Selanjutnya kita akan coba membaca file CSV COVID-19 yang telah didownload dengan menggunakan fungsi pd.read_csv().

pd.read_csv("COVID19_line_list_data.csv")
Membaca CSV menggunakan Pandas

Diatas terlihat file CSV yang dibaca mengunakan Pandas dapat dibentuk ulang menjadi Data Frame. Jika kita lihat raw CSV COVID-19 tersebut langsung menggunakan teks editor, maka terlihat jika tiap kolom data dipisahkan koma (,) dan tiap baris data merupakan 1 record data.

Raw CSV COVID-19 Kaggel.com

Kita dapat menyimpan Pandas Data Frame kedalam variable untuk kebutuhan analisa selanjutnya,

COV19_WORLD = pd.read_csv("COVID19_line_list_data.csv")# Print Dataframe
COV19_WORLD
Menyimpan dataframe kedalam variable Python

Untuk menampilkan beberapa baris data teratas, bisa menggunakan perintah berikut,

COV19_WORLD.head()
menampilkan 5 data teratas dari Data Frame

Perintah diatas hanya akan menampilkan 5 data teratas, kita dapat mengatur ulang jumlah data yang ingin dikeluarkan dengan menambahkan argumen banyaknya baris data. Berikut command jika ingin menampilkan 3 data teratas,

COV19_WORLD.head(3)
menampilkan 3 data teratas dari Data Frame

Kita juga dapat menampilkan data paling akhir dari Data Frame dengan menggunakan command berikut,

COV19_WORLD.tail()
menampilkan 5 data terakhir dari Data Frame

Sama seperti sebelumnya, kita dapat mengatur ulang jumlah data yang ingin ditampilkan dengan menambahkan argumen jumlah baris data. Berikut jika ingin menampilkan sebanyak 3 data paling akhir dari Data Frame,

COV19_WORLD.tail(3)
menampilkan 3 data terakhir dari Data Frame

Kita juga dapat melakukan random sampling dari data yang diambil dengan menggunakan command berikut,

COV19_WORLD.sample(5)
Melakukan sampling data acak sebanyak 5 baris data pada Data Frame

Kita dapat menampilkan rangkuman dari Data Frame yang sedang diproses sehingga kita dapat melihat banyaknya kolom, tipe-data tiap kolom, banyaknya baris data sampai alokasi memori.

COV19_WORLD.info()
Menampilkan summary Data Frame

Terlihat pada summary diatas, Data Frame yang kita miliki mempunyai 27 kolom dan 1085 entri data. Selanjutnya kita akan coba mengambil hanya sebagian kolom yang diperlukan. Kolom yang akan kita gunakan adalah :

reporting date, location, country, gender, age, death, recovered

Jalankan command berikut untuk menampilkan kolom diatas,

COV19_WORLD[['reporting date', 'location', 'country', 'gender', 'age', 'death', 'recovered']]
Filtering untuk menampilkan kolom reporting date, location, country, gender, age, death, recovered dari Data Frame COVID-19

Kita simpan Data Frame hasil filtering kolom tersebut kedalam variable baru, jalankan command berikut,

COV19_WORLD_FILT_COL = COV19_WORLD[['reporting date', 'location', 'country', 'gender', 'age', 'death', 'recovered']]COV19_WORLD_FILT_COL
Menyimpan Hasil Filtering Kolom kedalam variable

Selanjutnya kita dapat mengubah nama kolom pada Data Frame dengan menggunakan command berikut,

COV19_WORLD_FILT_COL = COV19_WORLD_FILT_COL.rename(columns={'reporting date': 'REPORTING_DATE', 'location' : 'LOCATION', 'country' : 'COUNTRY', 'gender' : 'GENDER', 'age' : 'AGE', 'death' : 'DEATH', 'recovered' : 'RECOVERED'})COV19_WORLD_FILT_COL
Rename kolom pada Data Frame

Selanjutnya kita akan menyimpan Data Frame kedalam file CSV. Jalankan command berikut,

COV19_WORLD_FILT_COL.to_csv("COVID19_line_list_data_compact.csv")

Selanjutnya pada screen Home Jupyter kita akan melihat ada file baru dengan nama ‘COVID19_line_list_data_compact.csv’,

File CSV yang berhasil disimpan
Content file CSV yang berhasil disimpan

Menyimpan Data Frame kedalam Excel dengan nama ‘COVID19_line_list_data_compact.xlsx’, jalankan command berikut,

COV19_WORLD_FILT_COL.to_excel("COVID19_line_list_data_compact.xlsx")
File Excel yang berhasil disimpan
Content File Excel yang berhasil disimpan

Kita juga dapat menyimpan Data Frame kedalam format TXT dengan pemisah ‘tab’ dengan menggunakan fungsi .to_csv() serta menambahkan parameter sep=’\t’ dimana \t merupakan string literal untuk ‘tab’. Berikut command untuk menyimpan Data Frame kedalam format txt file dengan pemisah ‘tab’.

COV19_WORLD_FILT_COL.to_csv("COVID19_line_list_data_compact.txt", sep='\t')
File TXT yang berhasil disimpan
Content File TXT yang berhasil disimpan

Selain itu kita juga dapat menyimpan Data Frame kedalam JSON, dengan menggunakan fungsi .to_json() kita dapat mengatur format JSON yang akan disimpan menggunakan parameter orient=’’ dengan default oprion columns. varian parameter orient diantaranya ‘split’, ‘records’, ‘index’, ‘columns’,
‘values’ dan ‘table’.
Berikut command untuk menyimpan Data Frame kedalam JSON file dengan format records,

COV19_WORLD_FILT_COL.to_json("COVID19_line_list_data_compact.json", orient='records')
File JSON yang berhasil disimpan
Content JSON yang berhasil disimpan

Setelah itu kita akan mencoba membaca file compact COVID-19 yang sudah disimpan keberbagai jenis file diatas (CSV, TXT, EXCEL, JSON) menggunakan Pandas. Pertama kita coba baca file COVID19_line_list_data_compact.csv .

pd.read_csv("COVID19_line_list_data_compact.csv")
Data Frame yang dihasilkan oleh file CSV COVID19_line_list_data_compact.csv

Dan kita juga bisa membaca file TXT yang sebelumnya disimpan dengan separator ‘tab’ dengan menggunakan command berikut, tambahkan parameter sep=’\t’ agar tiap kolom pada file bisa dibaca oleh Pandas.

pd.read_csv("COVID19_line_list_data_compact.txt", sep='\t')
Data Frame yang dihasilkan oleh file TXT COVID19_line_list_data_compact.txt

Selanjutnya kita akan membaca file Excel yang sebelumnya disimpan,

pd.read_excel("COVID19_line_list_data_compact.xlsx", sheet_name='Sheet1')

Jika terdapat error berikut, kita perlu meng-install library dependency tambahan xlrd melalui Anaconda Prompt. [Jika tidak muncul error, bagian ini bisa di skip]

Error missing dependency ‘xlrd’

Install library xlrd via Anaconda Prompt :

conda install xlrd
Install package xlrd via Anaconda Prompt

Setelah berhasil di-install (xlrd), kita dapat menjalankan perintah untuk membaca file excel menggunakan pandas,

Data Frame yang dihasilkan oleh file EXCEL COVID19_line_list_data_compact.xlsx

Yang terakhir kita akan membaca file JSON menggunakan Pandas sehingga bisa diproses dalam bentuk Data Frame, menggunakan command berikut,

pd.read_json("COVID19_line_list_data_compact.json")
Data Frame yang dihasilkan oleh file JSON COVID19_line_list_data_compact.json

Sekian untuk Python Data Science : Pandas — Part 1 dipart 2 akan dibahas mengenai teknik Filtering, Grouping, Merging dan Joining data menggunakan Pandas.

Terima kasih….

Sumber :

  1. https://pandas.pydata.org/pandas-docs/stable/index.html
  2. https://en.wikipedia.org/wiki/Pandas_(software)
  3. https://www.geeksforgeeks.org/python-pandas-dataframe/
  4. https://towardsdatascience.com/why-and-how-to-use-pandas-with-large-data-9594dda2ea4c
  5. https://data-flair.training/blogs/advantages-of-python-pandas/
  6. https://www.quora.com/What-are-the-benefits-of-a-Pythons-pandas-over-Microsoft-Excel-for-data-analysis
  7. https://towardsdatascience.com/handling-missing-values-with-pandas-b876bf6f008f
  8. https://towardsdatascience.com/data-cleaning-with-python-and-pandas-detecting-missing-values-3e9c6ebcf78b
  9. https://www.shanelynn.ie/merge-join-dataframes-python-pandas-index-1/
  10. https://towardsdatascience.com/basic-time-series-manipulation-with-pandas-4432afee64ea
  11. https://towardsdatascience.com/getting-started-with-pandas-time-series-functionality-c10b6ee733a4
  12. https://stackabuse.com/pandas-library-for-data-visualization-in-python/

--

--

Muhammad Yunus
Muhammad Yunus

Written by Muhammad Yunus

IoT Engineer, Software Developer & Machine Learning Enthusiast

No responses yet