Daftar Topik Utama
- pengertian library panda pada python
- cara instlasi library panda library pada python
- 1. Import Library panda
- 2. membaca file excel dengan nama daftar-uang-saku.xlsx
- 3. Memahami dataframe panda yang akan kita gunakan
- 4. select
- 5. Sorting
- 6. Filter Data
- 7. groupby dan sum
- 8. pivot table
- 9. menambah kolom baru
- 10. Menghapus kolom
- 11 menyimpan hasil ke excel
- 12 menyimpan hasil ke csv
pengertian library panda pada python
- Pandas adalah library yang berjalan di atas numpy
- jadi urutan layernya python , numpy, pandas
- Panda menyediakan 2 data struktur yaitu
- Series
- satu dimensi data
- DataFrame
- Dua Dimensi Data
- Series
Mengapa saat ini belajar Panda
- dengan program-program yang ada bisa digunakan
- menganalisa data dengan cepat (fast analysis)
- memiliki fungsi menampilkan data dalam format
- yang mudah dibaca (visualize features)
- bisa mengambil data dari berbagai macam sources
- (penting khususnya membaca database / excel)
- dengan program-program yang ada bisa digunakan
library untuk membaca data excel openpyxl dan bottleneck
beberapa bagian yang akan dibahas:
- Series
- DataFrames
- Missing Data
- GroupBy
- Merging
- Joining
- Concatenating
- Operations
- Data Input dan Output
cara instlasi library panda library pada python
!pip install panda # install panda !pip install openpyxl # program untuk baca xlsx !pip install bottleneck
1. Import Library panda
import numpy as np import pandas as pd
2. membaca file excel dengan nama daftar-uang-saku.xlsx
- sheet yang dibaca adalah Sheet1
df = pd.read_excel('daftar-uang-saku.xlsx',sheet_name='Sheet1') df
3. Memahami dataframe panda yang akan kita gunakan
3.1 df.info()
- menampilkan secara detail kolom dan dimensi data
- ini lebih recommended dibandingkan dtypes dan shape
df.info()
3.2 df.dtypes
- menampilkan nama kolom dan tipe datanya
df.dtypes
3.3 df.shape
- menampilkan dimensi data
df.shape
3.4 df.head()
- menampilkan 5 baris paling atas
df.head()
3.5 df.tail()
- menampilkan 5 baris paling bawah
df.tail()
3.6 df.describe()
- describe adalah perintah summary
- kesimpulan gunakan
- df.info(), df.head() dan df.describe()
# untuk menampilkan rata-rata, tertinggi dari semua kolom # yang bertipe angka df.describe()
4. select
- mengambil sebagian data
df['Nama'] # mengambil Nama df[['Nama','Kota']] # menampilkan kolom Nama dan Kota
4.1 df['nama kolom']
- mengambil kolom tertentu
- yang penting perhatikan huruf besar dan kecilnya
- termasuk juga bila ada spasi
- karena harus persis
df['Nama'] # mengambil Nama df[['Nama','Kota']] # mengambil kolom nama dan kota
4.2 loc
- menampilkan record dengan berdasarkan label
- tetapi karena pada dataframe yang kita gunakan ini tidak
- ada label maka nomor index yang secara otomatis
- bisa digunakan
- jadi misalnya data ada label misalnya nama orang ani, budi, charlie
- maka bisa menggunakan df.loc['ani']
df.loc[0] # ingat di python urutan data dimulai dari lokasi 0
4.3 memilih mulai dari label 0 sampai dengan 2
df.loc[0:2]
4.4 menampilkan record 0 sampai dengan 5
# dengan kolom Nama dan Uang Saku df.loc[0:5, ['Nama','Uang Saku']]
4.5 iloc (integer location)
- saran sebaiknya gunakan loc
- karena lebih mudah dipahami
- menampilkan data berdasarkan urutan integer
- bukan berdasarkan label dan nama kolom
- : semua baris
- 1:3 kolom 1 sampai 3
df.iloc[:, 1:3]
5. Sorting
- mengurutkan data berdasarkan kolom tertentu
df.sort_values('Jenis Kelamin')
5.1 descending
df.sort_values('Jenis Kelamin', ascending=False)
5.2 mengurutkan dengan 2 kolom
- berikut adalah contoh untuk sort dengan 2 kolom
- jadi primary key = Jenis Kelamin, Secondary Key = Uang Saku
- artinya bila nilai jenis kelami sama baru uang saku yang diurutkan
- karena inputnya 2, maka untuk ascending inputnya juga 2
df.sort_values(by=['Jenis Kelamin', 'Uang Saku'], ascending=[True, False])
5.3 sort dengan inplace
- perintah sort_values bila tanpa perintah inplace adalah
- data ditampilkan di layar 1x dalam posisi urut
- arti dari perintah inplace=True
- isi dari variabel df akan benar-benar diubah urutannya
df.sort_values('Jenis Kelamin', inplace=True) df
5.4 sort - reset_index
- bila sebelumnya data diurutkan dengan perintah inplace=True
- maka untuk mengembalikan kembali dapat menggunakan
- perintah reset_index()
df.reset_index() df
6. Filter Data
6.1 melakukan filter data dan
- kondisi dimasukkan ke dalam suatu variabel
- step 1: membuat kondisi dimana uang saku harus >= 5000
- kondisi dimasukkan ke dalam variabel b5000
b5000 = df['Uang Saku'] >= 5000 b5000
- step 2 memasukkan variabel kondisi ke dataframe
- perhatikan hasilnya data yang ditampilkan
- uang sakunya lebih dari 5000
- pada bagian ini kita tidak perlu menulis lagi kondisinya
- cukup masukkan nama variabelnya
df[b5000]
- step 3 penulisan step 1 dan 2 dapat digabung
df[df['Uang Saku']>= 5000]
6.2 Filter data dengan 2 kondisi
- digabung dengan perintah & (and) atau | (or)
- menampilkan data orang yang uang saku diatas 5000
- dan Kota nya Jakarta
- kedua syarat harus memenuhi (menggunakan operator & And)
syarat1 = df['Uang Saku'] > 5000 syarat2 = df['Kota'] == 'Jakarta' df[syarat1 & syarat2]
6.3 Filter data dengan kondisi or
- menampilkan data orang yang uang saku diatas 5000
- atau Kota nya Jakarta
- kedua syarat salah satu memenuhi (menggunakan operator | or)
- hasil pasti sama atau lebih banyak karena boleh salah satu syarat
- memenuhi
syarat1 = df['Uang Saku'] > 5000 syarat2 = df['Kota'] == 'Jakarta' df[syarat1 | syarat2]
6.4 Filter kolom bertipe tanggal
- untuk data tanggal filter data menggunakan format sbb:
df[df['Tanggal Lahir'] > '2002-12-31']
6.5 filter dengan bulan tertentu
- difilter yang bulannya adalah 3
df[df['Tanggal Lahir'].dt.month == 3]
6.6 menggunakan is in ?
- Filter kolom berdasarkan set data
- penggunaan fungsi isin agar filter
- tidak terlalu panjang dalam menulis data
df[df['Kota'].isin(['Jakarta', 'Bandung'])]
6.7 Filter dengan regex
df[df['Nama'].str.contains('Bud*',regex=True)]
7. groupby dan sum
- mengelompokkan data berdasarkan kolom tertentu
- banyak digunakan dalam bisnis
group_jk = df.groupby('Jenis Kelamin') group_jk['Uang Saku'].mean()
8. pivot table
- adalah melakukan pengelompokan data dan menjumlah
- pada contoh dibawah ini
- columns = kolom yang dikelompokkan (Jenis Kelamin)
- values = kolom yang berisi data angka (Uang saku)
- aggfunc = sum (bila data sama-sama laki-laki / perempuan total uang sakunya)
table = pd.pivot_table(df, columns='Jenis Kelamin', values='Uang Saku', aggfunc='sum') table pivot = pd.pivot_table(df, values='Uang Saku', index=['Kota'], columns=['Jenis Kelamin'], aggfunc='sum') pivot
8.1 untuk memformat angka ribuan tipe data integer
pivot.style.format('{:,}') pd.options.display.float_format = '{:,}'.format
8.2 perintah plot untuk membuat grafik
- bar = grafik batang vertikal
- barh = grafik batang horisontal
- figsize = dimensi besar (horizontal, vertikal)
- title = judul
- bila ingin disimpan arahkan mouse ke atas grafik
- tekan tombol icon disk
pivot = pd.pivot_table(df, values='Uang Saku', index=['Kota'], columns=['Jenis Kelamin'], aggfunc='sum').plot.bar(figsize=(9,6), title='Jumlah Uang Saku')
8.3 menambahkan total dengan perintah margins
- margins=True artinya diberi tambahan total
- margins_name='Total' artinya judul yang diberikan
- akan ditambahkan total baris dan total kolom
pivot = pd.pivot_table(df, values='Uang Saku', index=['Kota'], columns=['Jenis Kelamin'], aggfunc='sum', margins=True, margins_name='Total') pivot
9. menambah kolom baru
- membuat kolom baru
- dimana kolom baru hasil perhitungan
- dari kolom yang ada
df['Total'] = df['Uang Saku'] + df['Bonus'] df
10. Menghapus kolom
df.drop('Total', axis=1, inplace=True) df
- menghapus series 'NEW' tapi harus disertai param axis=1
- axis=1 menunjuk yang dihapus adalah kolom
- inplace=True untuk memastikan benar-benar dihapus
- jadi bila kita mengetik df di cell lain
- kolom Total sudah tidak ada lagi *
- menghapus baris sesuai dengan nomor indexnya
- contoh dibawah ini yang dihapus baris 10
- karena itu axis=0
- perhatikan hasilnya data baris ke 10 (kimi) tidak ada
df.drop(10, axis=0) # dihapus hanya di cell ini
11 menyimpan hasil ke excel
- df.to_excel(nama file lengkap dengan xlsx nya)
df.to_excel('data_hasil.xlsx')
12 menyimpan hasil ke csv
- df.to_csv('data_hasil.csv')
df.to_csv('data_hasil.csv')