Pandas IntroAnalisisData

Download as pdf or txt
Download as pdf or txt
You are on page 1of 44

Pengantar Analisis Data

(dengan tool: Pandas)

Tim Penyusun Materi Pengenalan Teknologi Informasi


Institut Teknologi Bandung © 2018
Objektif
• Mahasiswa memahami latar belakang dan pentingnya data analisis
• Mahasiswa dapat membedakan terminologi Data, Informasi,
Knowledge, Wisdom (DIKW)
• Mahasiswa mengerti lingkup dan workflow Data Analisis
• Mahasiswa dapat mempraktikkan teknik dalam Descriptive
Analytics dan EDA untuk melakukan analisis data sederhana
dengan menggunakan Python Pandas

19/10/2019 Pengenalan Teknologi Informasi 2


Motivasi
• Bigdata dan IoT
• Information Overload
• People are getting stupider?

19/10/2019 Pengenalan Teknologi Informasi 3


Big Data
• “if all the data used in the world today where written to CD ROMs
and the CD ROMs piled up in a single stack, the stack will stretch
all the way from the Earth to the Moon and a quarter of the way
back again”[1]
• “by the year 2020 there will be 35 ZB of digital data created per
annum” [2]

1. Hilbert, M & Lopez, P. (2011), “ (c) The Bi Data Revoluition, CNR SMagazine, 2013
The world’s technological capacity to store, communicate and compute information”, Science 332, 1 April 2011,
60-65 4
2. IDC (2010), “IDC Digital Uiverse Study, spomnsored by EMC”, May 2010
Big Data, IoT
1018 bytes/day
(2024, est.)

24 PB/day
22 PB (2012,
(2009)
the Large Hadron
2.5 PB of user data + Collider)
15 TB/day (2009)
Scientific Data,
6.5 PB of user data + Scientific Instruments
50 TB/day (2009)
Web, Social Media & Network

Mobile Devices, IoT, Sensor Technology & Networks

19/10/2019 Pengenalan Teknologi Informasi 5


Information Overload

19/10/2019 Pengenalan Teknologi Informasi 6


People are getting stupider?

Adopted from: John Stasko http://www.cc.gatech.edu/~stasko/7450/Notes/overview.pdf

19/10/2019 Pengenalan Teknologi Informasi 7


Sumber: http://www.systems-thinking.org/dikw/dikw.htm
19/10/2019 Pengenalan Teknologi Informasi 8
DIKW

Sumber: https://www.quora.com/Can-someone-give-a-simple-example-for-data-
information-knowledge-and-wisdom
19/10/2019 Pengenalan Teknologi Informasi 9
Sumber: https://www.quora.com/Can-someone-give-a-simple-example-for-data-
information-knowledge-and-wisdom

19/10/2019 Pengenalan Teknologi Informasi 10


Sumber: https://www.researchgate.net/publication/221437134_Are_you_searching_for_ways_to_find_information/figures?lo=1

19/10/2019 Pengenalan Teknologi Informasi 11


DIKW

19/10/2019 Pengenalan Teknologi Informasi 12


Data Analysis
• how to break down and
structure complex problems and
data sets to get right to the
heart of the problems in their
business. [1]
• a process of inspecting, cleansing,
transforming, and modeling data
with the goal of discovering
useful information, informing
conclusions, and supporting
decision-making [2]

1. Michael Milton, Head First Data Analysis, O’Reilly 2009


19/10/2019 Pengenalan Teknologi Informasi 13
2. https://en.wikipedia.org/wiki/Data_analysis
Data Analysis Workflow

Sumber:
https://ketakirk.wordpress.com/2016/04/03/an-end-to-end-data-analysis-workflow/

19/10/2019 Pengenalan Teknologi Informasi 14


Klasifikasi Data Analytics

Sumber:
2017 Planning Guide for Data and Analytics
19/10/2019 Pengenalan Teknologi Informasi 15
Descriptive Analytics
• Jenis paling sederhana dari Data Analytics
• Analisis terhadap data history untuk mendapatkan profil umum dalam
bentuk summary dari data atau hubungan antar data untuk
menjelaskan situasi yang telah terjadi.
• Contoh hasil analisis:
• Banyaknya friend, mention, followers, page views
• Banyaknya page views
• Perbandingan banyaknya mahasiswa antar prodi di ITB
• Rata-rata nilai mahasiswa peserta PTIB
• Hubungan antara banyaknya jam belajar dengan prestasi akademik
• Ada kecenderungan bahwa orang beli roti tawar bersamaan dengan
butter/mentega
• dll

19/10/2019 Pengenalan Teknologi Informasi 16


Diagnostic Analytics
• Tidak dibahas dalam kuliah ini

19/10/2019 Pengenalan Teknologi Informasi 17


Predictive Analytics
• Analisis terhadap data history untuk mendapatkan hubungan dan
trend yang ada (yang direpresentasikan dalam bentuk model
prediksi) dalam rangka untuk memperkirakan apa yang akan
terjadi di masa yang akan datang.
• Contoh:
• Memperkirakan nilai saham atau mata uang tertentu berdasarkan data
nilai saham atau mata uang pada periode waktu sebelumnya
• Memperkirakan apakah seseorang dengan karakteristik tertentu (usia,
penghasilan, jumlah tanggungan, frekwensi sakit berat) layak/tidak
diberikan kredit bank, berdasarkan data history pengambilan keputusan
oleh ahli keuangan.
• dll

19/10/2019 Pengenalan Teknologi Informasi 18


Prescriptive Analytics
• Analisis terhadap data history untuk dapat menghasilkan
kesimpulan berupa rekomendasi bagaimana sesuatu harus
dilakukan
• Contoh:
• Menentukan rute terbaik dari satu tempat ke tempat lain, berdasarkan
data yang ada
• Analisis oleh travel agent terhadap berbagai faktor terkait travel
(customer, tujuan, waktu, dll) untuk optimasi harga tiket
• Tidak dibahas detail di kuliah ini

19/10/2019 Pengenalan Teknologi Informasi 19


Tipe Data
• Categorical-Nominal
• Nama negara, warna kulit, nama program studi, dll
• Categorical-Ordinal
• Likert scale (“sangat setuju” s.d. “sangat tidak setuju”)
• Indeks nilai A, B, C, D, E
• Categorical-Binary
• Jenis kelamin, status mahasiswa (aktif, tidak aktif), dll
• Quantitative-Discrete
• Banyaknya anak, banyaknya mahasiswa, banyaknya sks lulus
• Quantitative-Continues
• Usia, berat badan, tinggi, suhu

19/10/2019 Pengenalan Teknologi Informasi 20


Kualitas Data
• Hasil analisis sangat
dipengaruhi oleh kualitas
data
• Ada banyak dimensi kualitas
data

Sumber:
https://www.whitepapers.em360tech.com/wp-content/files_mf/1407250286DAMAUKDQDimensionsWhitePaperR37.pdf
https://www.cdc.gov/ncbddd/hearingloss/documents/dataqualityworksheet.pdf
https://www.rfigroup.com/rfi-group/news/rfi-group-opinion-australia-why-business-leaders-need-own-data-quality
19/10/2019 Pengenalan Teknologi Informasi 21
Representasi Data berdasar Strukturnya
• Structured Data
• Data dalam bentuk table/relational
• Contoh: data dalam xls, data tersimpan dalam relational DBMS
• Semi-structured Data
• Data yang tidak direpresentasikan dalam bentuk table, namun masih
memiliki struktur/pengorganisasian yang memudahkan proses/analisis
• Contoh: data dalam format xls, json, noSQL database
• Unstructured Data
• Data yang tidak memiliki struktur yang memudahkan proses/analisis
• Contoh: data teks, data video, data foto

19/10/2019 Pengenalan Teknologi Informasi 22


Data Store
• Adalah sebuah repository untuk secara persisten (bersifat tetap)
menyimpan dan mengelola kumpulan data
• Bentuk-bentuk data store:
• File, semacam csv file, spreadsheet
• Email
• Database
• Distributed Data Store
• Directory Services
• dll

19/10/2019 Pengenalan Teknologi Informasi 23


Contoh-contoh kegiatan Data Analysis
Descriptive Analytics dan Exploratory DA
• Retrieve Value (Selection)
• Filter
• Compute Derived Value
• Find Extremum
• Sort
• Determine Range
• Characterize Distribution
• Find Anomalies
• Correlation https://en.wikipedia.org/wiki/Data_analysis
• Clustering

19/10/2019 Pengenalan Teknologi Informasi 24


Pandas
• Pandas = Python Data Analysis Library
• Dikembangkan We McKinney 2008
• Sebuah library open source yang menyediakan
model data terstruktur dan fungsi manipulasi
dan analisis data dalam lingkungan bahasa
pemrograman Python
• Instalasi Pandas: dalam paket Anaconda
(http://www.anaconda.com)
• Model data pada Pandas disebut DataFrame:
data dalam bentuk tabular (tabel dengan kolom
dan baris)
https://pandas.pydata.org/

19/10/2019 Pengenalan Teknologi Informasi 25


Create DataFrame
import pandas as pd
dataMhs = {"NIM": ["16519001", "16519002", "16519003"],
"Nama" : ["Bin Bin", "Atung", "Kaka"],
"NilaiPTIB": [75, 80, 90]}
df1 = pd.DataFrame(data=dataMhs)
print(df)

d = {"one" : pd.Series([1.,2.,3.], index=["a","b","c"]),


"two" : pd.Series([1.,2.,3.,4.], index=["a","b","c","d"])}
df2 = pd.DataFrame(d)

19/10/2019 Pengenalan Teknologi Informasi 26


Baca dan Tampilkan Data
• Baca Data dari File CSV
import pandas as pd
df3 = pd.read_csv("D:/medali.csv")
print(df3)

• Baca Data dari File Spreadsheet (.xlsx)


import pandas as pd
sn = "Sheet1"
df4 = pd.read_excel("D:/medali.xlsx",sheet_name=sn)
print(df4)
Sumber data: https://www.bola.com/pages/perolehan-medali/
19/10/2019 Pengenalan Teknologi Informasi 27
Tulis Data
• Tulis Data ke File CSV
# Asumsi df3 sudah terdefinisi (lihat slide sebelumnya)
df3.to_csv("D:/medali_out.csv")

• Tulis Data ke File Spreadsheet (.xlsx)


# Asumsi df4 sudah terdefinisi (lihat slide sebelumnya)
writer = pd.ExcelWriter("D:/medali_out.xlsx")
df4.to_excel(writer, "Sheet1")
df4.to_excel(writer, "Sheet2") #tulis data yang sama di sheet lain
writer.save()

19/10/2019 Pengenalan Teknologi Informasi 28


Select Data (1): Subset, Filter

• DataFrame menggunakan indeks mulai dengan nilai 0


• Contoh-contoh:

#Dapatkan subset mulai dari baris ke-5


#(dari indeks ke-4)
df3[4:]

#dapatkan mulai baris ke-5 (idx=4),


#s.d. baris ke-8 (idx=7)
df3[4:8]

#dapatkan semua baris


#s.d. baris ke-8 (idx=7)
df3[:8]

19/10/2019 Pengenalan Teknologi Informasi 29


Select Data (2): Subset, Filter
DataFrame.loc: mengakses baris dan kolom berdasarkan label
atau array of boolean

#data baris ke-4, kolom country


df3.loc[3,"country"] #Indonesia
#data dari baris ke-4 (idx=3) s.d. ke-10 (idx=9);
#kolom country s.d. bronze
df3.loc[3:9,"country":"bronze"]

19/10/2019 Pengenalan Teknologi Informasi 30


Select Data (3): Berdasar kondisi
#Ambil semua data dengan jumlah medali perunggu = 0
df3.loc[df3["bronze"] == 0]

#Cetak semua data dengan total medali >= 50


print(df3.loc[df3["total"] >= 50])

#Cetak semua data negara yang hanya mendapat medali perunggu


print(df3.loc[(df3["gold"] == 0) & (df3["silver"] == 0) &
(df3["bronze"] > 0)])

#Ambil semua data negara yang tidak mendapatkan medali emas atau
#perak atau perunggu
df3.loc[(df3["gold"] == 0) | (df3["silver"] == 0) |
(df3["bronze"] == 0)]

19/10/2019 Pengenalan Teknologi Informasi 31


Select Data (3a)
Latihan-1
• Tuliskan perintah dan tuliskan hasilnya untuk beberapa perintah
berikut:
1. Tampilkan data 10 negara ranking pertama.
2. Tampilkan daftar negara rangking 11 s.d. 20 (nama negaranya saja yang
ditampilkan)
3. Tampilkan data negara yang mendapatkan 1 medali emas.
4. Tampilkan data negara dengan total perolehan medali > 20, tetapi
dengan jumlah perolehan medali emas < 5

19/10/2019 Pengenalan Teknologi Informasi 32


Select Data (3b)
Latihan-1
• Contoh perintah dan hasil:
3. Tampilkan data negara yang mendapatkan 1 medali emas.

19/10/2019 Pengenalan Teknologi Informasi 33


Find Extremum
#Temukan indeks dengan nilai maksimum
#pada kolom bronze
imax = df3["bronze"].idxmax()
df3[imax:imax+1]

#Temukan indeks dengan nilai minimum


#pada kolom bronze
#Jika nilai minimum ada lebih dari
#satu, maka baris yang ditemukan
#pertama kali
imin = df3["bronze"].idxmin()
df3[imin:imin+1]

19/10/2019 Pengenalan Teknologi Informasi 34


Determine Range
#dapatkan nilai minimum dan maximum
#untuk seluruh data
minimum,maximum=(df3.min(),df3.max())
print(minimum); print (maximum)

#nilai minimum untuk kolom country


minimum["country"]

#nilai maksimum untuk kolom gold


maximum["gold"]

19/10/2019 Pengenalan Teknologi Informasi 35


Latihan-2
• Tampilkan negara(-negara) • Tampilkan negara(-negara)
dengan perolehan perunggu dengan perolehan perunggu
terbanyak paling sedikit, tapi total
perolehan medali > 0

19/10/2019 Pengenalan Teknologi Informasi 36


Sort
#Sort terurut menurun (ascending=0) berdasarkan kolom country
print(df3.sort_values(["country"], ascending=[0]))

#Sort terurut menaik (ascending=1) berdasarkan kolom total


print(df3.sort_values(["total"], ascending=[1]))

#Sort terurut menaik berdasarkan kolom total dan menurun


#berdasarkan kolom country
print(df3.sort_values(["total","country"], ascending=[1,0]))

Latihan-3:
Sort data perolehan medali terurut menurun berdasarkan kolom
gold dan terurut menaik berdasarkan kolom silver
19/10/2019 Pengenalan Teknologi Informasi 37
Counting Frequency
Menghitung banyaknya kemunculan
suatu data item pada suatu kolom →
distribusi kemunculan nilai
#Counting frequency kolom bronze
df3["bronze"].value_counts()

Latihan-4
Buatlah distribusi frekuensi untuk
total perolehan medali.
19/10/2019 Pengenalan Teknologi Informasi 38
Statistics Summary, Characterize Distribution
Menampilkan beberapa statistik penting pada data

df3.describe()

19/10/2019 Pengenalan Teknologi Informasi 39


Rata-Rata dan Deviasi Standar
Menghitung rata-rata (mean) dan deviasi standar (std)
pada data

#rata-Rata data df3


df3.mean()
#deviasi standar data df3
df3.std()
#rata-rata total perolehan medali
df3.mean()["total"]
#deviasi standar perolehan medali emas
df3.std()["gold"]
19/10/2019 Pengenalan Teknologi Informasi 40
Correlation (1)

Correlation adalah indikasi


hubungan antara dua atau
lebih variable, yang dinyatakan
dalam correlation coefficient

Sumber:
https://www.mathsisfun.com/data/correlation.html

19/10/2019 Pengenalan Teknologi Informasi 41


Correlation (2)
#korelasi antara perolehan medali emas dengan total perolehan
#medali
df3["gold"].corr(df3["total"])

• Dengan nilai mendekati 1, korelasi antara “gold” dan “total” adalah


cenderung positif (high positive correlation)
• Artinya: semakin banyak perolehan medali emas, total perolehan
medali juga cenderung semakin banyak
19/10/2019 Pengenalan Teknologi Informasi 42
Correlation (2)
Latihan-5
• Hitung dan analisis-lah korelasi antara data-data berikut:
• Gold vs Silver
• Silver vs Bronze
• Gold vs Bronze gold silver bronze total
• Silver vs Total gold 1
• Bronze vs Total silver 0.96218… 1
bronze 0.81740… 0.89955… 1
total 0.96564… 0.98981… 0.93523… 1

19/10/2019 Pengenalan Teknologi Informasi 43


19/10/2019 Pengenalan Teknologi Informasi 44

You might also like