Python untuk Data Wrangling Muhammad Hilman Fatoni
Data Wrangling - Definisi Data wrangling adalah proses cleaning dan unifying kumpulan data (data set) yang komplek dan messy untuk memudahkan akses dan analisis. Dengan jumlah data dan sumber data yang tumbuh dan berkembang dengan cepat, maka penting bagi sejumlah besar data yang tersedia untuk diorganisasikan agar bisa analisis. Proses ini biasanya mencakup pengubahan / pemetaan data secara manual dari satu bentuk mentah ke format lain untuk memungkinkan konsumsi dan pengorganisasian data yang lebih nyaman.
Data Wrangling Mengolah Data: Programs Scripts Data Documentation Text Images Movies
Programs dan Scripts Reproducibility Code snapshots Documentation Archiving Version control RCS (Revision Control System), Subversion Feature creep Expansion vs modification
Manajemen Data Size matters (Ukuran itu penting) Apa yang ingin disimpan? Apa yang susah direproduksi? Jangka pendek vs jangka panjang Pengarsipan SCF (Ship Contruction File) archive system Back up ke external drive
Back to Pipeline Data Matlab VTK OpenGL Maya IDL Paraview OSG Photoshop Gnuplot DAFFIE Performer Premier Xmgrace Excel Sumber : http://www.bu.edu/tech/research/training
Data Anda Sci-vis Package Minimal conversion, atau usahakan dalam bentuk dasar Headers Reformatting ASCII vs binary Data type (int, single, double) Endian-ness Example – exporting dari Matlab ke VTK(Visualization Tool Kit)
Array Layout 2-D example, Matlab >> a(1,1) = 11; 11 12 21 22 >> a1d = reshape(a,4,1) a1d = 11 21 12 22
Array Layout 2-D example, C-Language Output: #include <stdio.h> main() { int m[2][2]; int *pm = m; int i; m[0][0] = 11; m[0][1] = 12; m[1][0] = 21; m[1][1] = 22; for (i=0; i<4; i++) printf("%d\n", pm[i]); } Output: 11 12 21 22
Endian-ness Big endian Little Endian
Larger Picture
Librari Python untuk Data Science Toolbox atau library populer pada Python : NumPy SciPy Pandas SciKit-Learn Library visualisasi matplotlib Seaborn dan lain-lain
Librari Python untuk Data Science NumPy: memperkenalkan objek untuk array dan matriks multidimensi, serta fungsi yang memungkinkan untuk dengan mudah melakukan operasi matematika dan statistik lanjut pada objek-objek tersebut memberikan vektorisasi operasi matematika pada array dan matriks yang secara signifikan meningkatkan kinerja/performa banyak library python menggunakan NumPy introduces objects for multidimensional arrays and matrices, as well as functions that allow to easily perform advanced mathematical and statistical operations on those objects provides vectorization of mathematical operations on arrays and matrices which significantly improves the performance many other python libraries are built on NumPy Link: http://www.numpy.org/
Librari Python untuk Data Science SciPy: kumpulan algoritma untuk aljabar linier, persamaan diferensial, integrasi numerik, optimisasi, statistik, dan lainnya bagian dari SciPy Stack built on NumPy collection of algorithms for linear algebra, differential equations, numerical integration, optimization, statistics and more part of SciPy Stack built on NumPy Link: https://www.scipy.org/scipylib/
Librari Python untuk Data Science Pandas: menambahkan data structure dan tools yang dirancang untuk bekerja dengan data seperti tabel (mirip dengan Series dan Data Frames dalam R) menyediakan alat untuk manipulasi data: reshaping, merging, sorting, slicing, aggregation, dll. memungkinkan handling data yang hilang adds data structures and tools designed to work with table-like data (similar to Series and Data Frames in R) provides tools for data manipulation: reshaping, merging, sorting, slicing, aggregation etc. allows handling missing data Link: http://pandas.pydata.org/
Librari Python untuk Data Science SciKit-Learn: menyediakan algoritma machine learning : classification, regression, clustering, model validation etc. built on NumPy, SciPy dan matplotlib provides machine learning algorithms: classification, regression, clustering, model validation etc. built on NumPy, SciPy and matplotlib Link: http://scikit-learn.org/
Librari Python untuk Data Science matplotlib: python 2D plotting library yang menghasilkan angka-angka dengan format public dalam berbagai format hardcopy satu set fungsi yang mirip dengan MATLAB line plots, scatter plots, barcharts, histograms, pie charts, dll. tingkat low level; upaya lebih diperlukan untuk menciptakan visualisasi lanjut python 2D plotting library which produces publication quality figures in a variety of hardcopy formats a set of functionalities similar to those of MATLAB line plots, scatter plots, barcharts, histograms, pie charts etc. relatively low-level; some effort needed to create advanced visualization Link: https://matplotlib.org/
Librari Python untuk Data Science Seaborn: based on matplotlib menyediakan interface high level untuk menggambar statistical graphics yang atraktif Mirip (in style) dengan library populer ggplot2 in R Link: https://seaborn.pydata.org/
Data Wrangling - Join, Combine, dan Reshape Hierarchical Indexing Reordering dan Sorting Levels Summary Statistics dengan Level Combining dan Merging Datasets Database-Style DataFrame Joins Merging on Index
Hierarchical Indexing Hierarchical Indexing merupakan fitur penting dari panda yang memungkinkan user memiliki banyak (dua atau lebih) tingkat indeks pada suatu sumbu. Secara abstrak, hal tersebut menyediakan cara bagi user agar bekerja dengan data dimensi yang lebih tinggi dalam bentuk dimensi yang lebih rendah
Hierarchical Indexing
Hierarchical Indexing - Reordering dan Sorting Levels Terkadang user perlu mengatur ulang urutan level pada sumbu atau mengurutkan data oleh nilai-nilai dalam satu tingkat tertentu. Swaplevel membutuhkan dua nomor atau nama level dan mengembalikan objek baru dengan level yang dipertukarkan (tetapi datanya sebaliknya tidak berubah)
Combining dan Merging Datasets - Database-Style DataFrame Joins Merge or join operations menggabungkan datasets dengan menghubungkan baris menggunakan satu atau lebih keys. Operasi ini adalah penting terhadap relational databases. Fungsi merge pada pandas adalah titik penting untuk menggunakan algoritma ini pada data user
Combining dan Merging Datasets - Database-Style DataFrame Joins
Combining dan Merging Datasets – Merging dengan Index
TERIMA KASIH