Panduan Lengkap Menggunakan Pandas Di Python Untuk Data Science - CRUDPRO

Panduan Lengkap Menggunakan Pandas Di Python Untuk Data Science

Panduan Lengkap Menggunakan Pandas Di Python Untuk Data Science

Pandas adalah salah satu kerangka kerja python paling populer di kalangan ilmuwan data, analitik data hingga insinyur pembelajaran mesin. Kerangka kerja ini adalah alat penting untuk memuat data, pra-pemrosesan, dan analisis.

Sebelum belajar Panda, Anda harus memahami apa itu data frame? Data Frame adalah struktur data dua dimensi, seperti array 2d, atau mirip dengan tabel dengan baris dan kolom.

Untuk artikel ini, saya menggunakan kumpulan data toko online dummy saya, yang terletak di akun Kaggle dan GitHub saya. Anda dapat mengunduhnya dari keduanya. Juga, saya akan memberi Anda semua buku catatan latihan ini di akun GitHub saya, jadi jangan ragu untuk menggunakannya.

Sebelum memulai artikel, berikut adalah topik yang kami bahas.

Daftar Isi
  1. Setup
  2. Memuat Berbagai Format Data
  3. Prapemrosesan Data
  4. Manajemen memori
  5. Analisis data
  6. Visualisasi data
  7. Pikiran Terakhir
  8. Referensi

Jangan ragu untuk memeriksa repo GitHub untuk tutorial ini.

1. Setup

Import

Sebelum melanjutkan untuk mempelajari panda, pertama-tama kita perlu menginstalnya dan mengimpornya. Jika Anda menginstal distribusi Anaconda di mesin lokal Anda atau menggunakan Google Colab maka pandas akan tersedia di sana, jika tidak, Anda mengikuti proses instalasi ini dari situs resmi pandas.

# Importing libraries
import numpy as np
import pandas as pd
Mengatur Opsi Tampilan

Pengaturan default opsi tampilan panda ada batasan tampilan kolom dan baris. Ketika kita perlu menampilkan lebih banyak baris atau kolom maka kita dapat menggunakan set_option() fungsi untuk menampilkan sejumlah besar baris atau kolom. Untuk fungsi ini, kita dapat mengatur sejumlah nilai baris dan kolom.

# we can set numbers for how many rows and columns will be displayed
pd.set_option('display.min_rows', 10) #default will be 10 
pd.set_option('display.max_columns', 20)

2. Memuat Berbagai Format Data Ke dalam Bingkai Data Pandas

Pandas adalah alat yang mudah untuk membaca dan menulis berbagai jenis format file. Dengan menggunakan alat ini kita dapat memuat file CSV, Excel, Pdf, JSON, HTML, HDF5, SQL, Google BigQuery, dll dengan mudah.

Berikut adalah beberapa metode, saya akan menunjukkan kepada Anda bagaimana kita dapat membaca dan menulis paling sering menggunakan format file.

Membaca file CSV

CSV (file yang dipisahkan koma) adalah format file yang paling populer. Membaca file ini kami menggunakan fungsi read.csv() sederhana.

# read csv file

df = pd.read_csv('dataset/online_store_customer_data.csv')
df.head(3)
Panduan Lengkap Menggunakan Pandas Di Python Untuk Data Science

Kita dapat menambahkan beberapa parameter umum untuk mengubah fungsi ini. Jika kita perlu melewatkan beberapa baris pertama dalam bingkai data, maka kita dapat menggunakan argumen kata kunci skiprows. Misalnya, jika kita ingin melewati baris pertama maka kita menggunakan skiprows=2. Demikian pula, jika kita tidak ingin bertahan 2 baris maka kita cukup menggunakan skipfooter=2 . Jika kita tidak ingin memuat header kolom maka kita dapat menggunakan header=None .

# Memuat file csv dengan melewatkan 2 baris pertama tanpa header
df_csv = pd.read_csv('dataset/online_store_customer_data.csv', skiprows=2, header=None)
df_csv.head(3)
Panduan Lengkap Menggunakan Pandas Di Python Untuk Data Science
Baca file CSV dari URL

Untuk membaca file CSV dari URL, Anda dapat langsung memberikan tautan.

# Read csv file from url
url="https://raw.githubusercontent.com/norochalise/pandas-tutorial-article-2022/main/dataset/online_store_customer_data.csv"
df_url = pd.read_csv(url)
df_url.head(3)
Panduan Lengkap Menggunakan Pandas Di Python Untuk Data Science
Tulis file CSV

Saat Anda ingin menyimpan bingkai data pada file CSV, Anda cukup menggunakan fungsi to.csv(). Anda juga harus memberikan nama file dan itu akan menyimpan file itu.

# saving df_url dataframe to csv file
df_url.to_csv('dataset/csv_from_url.csv')
df_url.to_csv('dataset/demo_text.txt')
Baca file teks

Membaca file teks biasa, kita dapat menggunakan fungsi read_csv(). Dalam fungsi ini, Anda harus memberikan nama file .txt.

# read plain text file
df_txt = pd.read_csv("dataset/demo_text.txt")
Baca file Excel

Untuk membaca file Excel, kita harus menggunakan read_excel() fungsi dari paket pandas. Jika kita memiliki beberapa nama sheet maka kita dapat meneruskan argumen nama sheet dengan fungsi ini.

# read excel file
df_excel = pd.read_excel('dataset/excel_file.xlsx', sheet_name='Sheet1')
df_excel
Panduan Lengkap Menggunakan Pandas Di Python Untuk Data Science
Tulis file Excel

Kami dapat menyimpan bingkai data kami ke file excel yang sama dengan file CSV. Anda dapat menggunakan fungsi to_Excel() dengan nama file dan lokasi.

# save dataframe to the excel file
df_url.to_csv('demo.xlsx')

3. Pra-pemrosesan data

Preprocessing data adalah proses pembuatan data mentah untuk membersihkan data. Ini adalah bagian terpenting dari ilmu data. Di bagian ini, kita akan mengeksplorasi data terlebih dahulu kemudian menghapus kolom yang tidak diinginkan, menghapus duplikat, menangani data yang hilang, dll. Setelah langkah ini, kita mendapatkan data bersih dari data mentah.

3.1 Penjelajahan Data
Mengambil baris dari bingkai data.

Setelah loading data, hal pertama yang kita lakukan adalah melihat data kita. Untuk tujuan ini kami menggunakan fungsi head() dan tail() . Fungsi kepala akan menampilkan baris pertama dan ekor akan menjadi baris terakhir. Secara default, ini menunjukkan 5 baris. Misalkan kita ingin menampilkan 3 baris pertama dan 6 baris terakhir. Kita bisa melakukannya dengan cara ini.

# display first 3 rows
df.head(3)
Panduan Lengkap Menggunakan Pandas Di Python Untuk Data Science
# display last 6 rows
df.tail(6)
Panduan Lengkap Menggunakan Pandas Di Python Untuk Data Science
Mengambil baris sampel dari bingkai data.

Jika kita ingin menampilkan data sampel maka kita dapat menggunakan sample() sebuah fungsi dengan jumlah baris yang diinginkan. Ini akan menunjukkan jumlah baris acak yang diinginkan. Jika kita ingin mengambil 7 sampel, kita harus melewati 7 dalam fungsi sampel(7).

# Display random 7 sample rows
df.sample(7)
Panduan Lengkap Menggunakan Pandas Di Python Untuk Data Science
Mengambil informasi tentang bingkai data

Untuk menampilkan informasi frame data kita dapat menggunakan metode info(). Ini akan menampilkan tipe data kolom, menghitung total nilai non-null setiap kolom dan ruang memorinya.

df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 2512 entries, 0 to 2511
Data columns (total 11 columns):
 #   Column            Non-Null Count  Dtype  
---  ------            --------------  -----  
 0   Transaction_date  2512 non-null   object 
 1   Transaction_ID    2512 non-null   int64  
 2   Gender            2484 non-null   object 
 3   Age               2470 non-null   float64
 4   Marital_status    2512 non-null   object 
 5   State_names       2512 non-null   object 
 6   Segment           2512 non-null   object 
 7   Employees_status  2486 non-null   object 
 8   Payment_method    2512 non-null   object 
 9   Referal           2357 non-null   float64
 10  Amount_spent      2270 non-null   float64
dtypes: float64(3), int64(1), object(7)
memory usage: 216.0+ KB

Tampilan tipe data setiap kolom kita bisa menggunakan atribut dtypes. Kita dapat menambahkan metode value_counts() di dtypes untuk menampilkan semua tipe data yang menghitung nilai.

# display datatypes
df.dtypes
Transaction_date     object
Transaction_ID        int64
Gender               object
Age                 float64
Marital_status       object
State_names          object
Segment              object
Employees_status     object
Payment_method       object
Referal             float64
Amount_spent        float64
dtype: object
df.dtypes.value_counts()
object     7
float64    3
int64      1
dtype: int64
Menampilkan jumlah baris dan kolom.

Untuk menampilkan jumlah baris dan kolom kita menggunakan atribut bentuk. Angka pertama dan angka terakhir menunjukkan jumlah baris dan kolom masing-masing.

df.shape
(2512, 11)
Tampilkan nama kolom dan data

Untuk menampilkan nama kolom dari bingkai data kami, kami menggunakan atribut kolom.

df.columns
Index(['Transaction_date', 'Transaction_ID', 'Gender', 'Age', 'Marital_status',
       'State_names', 'Segment', 'Employees_status', 'Payment_method',
       'Referal', 'Amount_spent'],
      dtype='object')

Jika kita ingin menampilkan data kolom tunggal atau ganda, kita hanya perlu memberikan nama kolom dengan bingkai data. Untuk menampilkan beberapa kolom informasi data, kita perlu melewati daftar nama kolom.

# display Age columns first 3 rows data
df['Age'].head(3)
0    19.0
1    49.0
2    63.0
Name: Age, dtype: float64
# display first 4 rows of Age, Transaction_date and Gender columns
df[['Age', 'Transaction_date', 'Gender']].head(4)
Panduan Lengkap Menggunakan Pandas Di Python Untuk Data Science
Mengambil Rentang Baris

Jika kita ingin menampilkan rentang baris tertentu, kita dapat menggunakan slicing. Misalnya, jika kita ingin mendapatkan baris ke-2 hingga ke-6, kita cukup menggunakan df[2:7].

# for display 2nd to 6th rows
df[2:7]

# for display starting to 10th
df[:11]

# for display last two rows
df[-2:]
Panduan Lengkap Menggunakan Pandas Di Python Untuk Data Science
3.2 Pembersihan Data

Setelah menjelajahi kumpulan data kami mungkin perlu membersihkannya untuk analisis yang lebih baik. Data datang dari berbagai sumber sehingga ada kemungkinan kesalahan dalam beberapa nilai. Di sinilah pembersihan data menjadi sangat penting. Di bagian ini, kami akan menghapus kolom yang tidak diinginkan, mengganti nama kolom, memperbaiki tipe data yang sesuai, dll.

Hapus nama Kolom

Kita dapat menggunakan fungsi drop untuk menghapus kolom yang tidak diinginkan dari bingkai data. Jangan lupa untuk menambahkan inplace = True dan axis=1. Ini akan mengubah nilai dalam bingkai data.

# Drop unwanted columns
df.drop(['Transaction_ID'], axis=1, inplace=True)
Ubah nama Kolom

Untuk mengubah nama kolom, kita dapat menggunakan fungsi rename() dengan melewati kamus kolom. Dalam kamus, kami akan memberikan kunci seperti nama kolom lama dan nilai sebagai nama kolom baru yang diinginkan. Sebagai contoh, sekarang kita akan mengubah Transaction_date dan Gender menjadi Date and Sex.

# create new df_col dataframe from df.copy() method. 
df_col = df.copy()

# rename columns name
df_col.rename(columns={"Transaction_date": "Date", "Gender": "Sex"}, inplace=True)
df_col.head(3)
Panduan Lengkap Menggunakan Pandas Di Python Untuk Data Science
Menambahkan kolom baru ke Bingkai Data

Anda dapat menambahkan kolom baru ke bingkai data panda yang ada hanya dengan menetapkan nilai ke nama kolom baru. Misalnya, kode berikut membuat kolom ketiga bernama new_col di bingkai data df_col:

# Add a new_col column which value will be amount_spent * 100
df_col['new_col'] = df_col['Amount_spent'] * 100
df_col.head(3)
Panduan Lengkap Menggunakan Pandas Di Python Untuk Data Science
Nilai string berubah atau diganti

Kita dapat mengganti nilai baru dengan yang lama, dengan metode .loc() dengan bantuan kondisi. Misalnya, sekarang kita mengubah Female to Woman dan Male to Man di kolom Sex.

df_col.head(3)
Panduan Lengkap Menggunakan Pandas Di Python Untuk Data Science
# changing Female to Woman and Male to Man in Sex column.
#first argument in loc function is condition and second one is columns name. 
df_col.loc[df_col.Sex == "Female", 'Sex'] = 'Woman' 
df_col.loc[df_col.Sex == "Male", 'Sex'] = 'Man'
df_col.head(3)
Panduan Lengkap Menggunakan Pandas Di Python Untuk Data Science

Sekarang nilai kolom Sex diubah Female menjadi Woman dan Male to Man.

Perubahan tipe data

Ketika kita berurusan dengan tipe data yang berbeda, terkadang itu adalah tugas yang membosankan. Jika kita ingin bekerja pada tanggal, kita harus mengubahnya dengan format tanggal yang tepat. Jika tidak, kita mendapatkan masalah. Tugas ini mudah pada panda. Kita dapat menggunakan fungsi astype() untuk mengonversi satu tipe data ke tipe data lainnya.

df_col.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 2512 entries, 0 to 2511
Data columns (total 11 columns):
 #   Column            Non-Null Count  Dtype  
---  ------            --------------  -----  
 0   Date              2512 non-null   object 
 1   Sex               2484 non-null   object 
 2   Age               2470 non-null   float64
 3   Marital_status    2512 non-null   object 
 4   State_names       2512 non-null   object 
 5   Segment           2512 non-null   object 
 6   Employees_status  2486 non-null   object 
 7   Payment_method    2512 non-null   object 
 8   Referal           2357 non-null   float64
 9   Amount_spent      2270 non-null   float64
 10  new_col           2270 non-null   float64
dtypes: float64(4), object(7)
memory usage: 216.0+ KB

Di kolom Tanggal kami, ini adalah tipe objek jadi sekarang kami akan mengonversinya menjadi tipe tanggal, dan juga kami akan mengonversi kolom Referensi float64 menjadi float32.

# change object type to datefime64 format
df_col['Date'] = df_col['Date'].astype('datetime64[ns]')

# change float64 to float32 of Referal columns
df_col['Referal'] = df_col['Referal'].astype('float32')
df_col.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 2512 entries, 0 to 2511
Data columns (total 11 columns):
 #   Column            Non-Null Count  Dtype         
---  ------            --------------  -----         
 0   Date              2512 non-null   datetime64[ns]
 1   Sex               2484 non-null   object        
 2   Age               2470 non-null   float64       
 3   Marital_status    2512 non-null   object        
 4   State_names       2512 non-null   object        
 5   Segment           2512 non-null   object        
 6   Employees_status  2486 non-null   object        
 7   Payment_method    2512 non-null   object        
 8   Referal           2357 non-null   float32       
 9   Amount_spent      2270 non-null   float64       
 10  new_col           2270 non-null   float64       
dtypes: datetime64[ns](1), float32(1), float64(3), object(6)
memory usage: 206.2+ KB
3.3 Hapus duplikat

Di bagian preprocessing data, kita perlu menghapus entri duplikat. Untuk berbagai jenis alasan terkadang bingkai data kami memiliki beberapa entri duplikat. Menghapus entri duplikat dapat dengan mudah dilakukan dengan bantuan fungsi pandas. Pertama, kami menggunakan fungsi duplikat () untuk mengidentifikasi entri duplikat kemudian kami menggunakan drop_duplicates () untuk menghapusnya.

# Display duplicated entries 
df.duplicated().sum()
12
# duplicate rows dispaly, keep arguments will--- 'first', 'last' and False
duplicate_value = df.duplicated(keep='first')

df.loc[duplicate_value, :]
Panduan Lengkap Menggunakan Pandas Di Python Untuk Data Science
# dropping ALL duplicate values
df.drop_duplicates(keep = 'first', inplace = True)
3.4 Menangani nilai yang hilang

Menangani nilai yang hilang dalam tugas umum di bagian prapemrosesan data. Untuk banyak alasan sebagian besar waktu kita akan menemukan nilai-nilai yang hilang. Tanpa berurusan dengan ini, kita tidak dapat melakukan pembuatan model yang tepat. Untuk bagian ini pertama-tama, kita akan menemukan nilai-nilai yang hilang kemudian kita memutuskan bagaimana menanganinya. Kami dapat menangani ini dengan menghapus kolom atau baris yang terpengaruh atau mengganti nilai yang sesuai di sana.

Tampilkan informasi nilai yang hilang

Untuk menampilkan nilai yang hilang, kita dapat menggunakan fungsi isna(). Menghitung total nilai yang hilang di setiap kolom dalam urutan menaik, kami menggunakan fungsi .sum() dan sort_values(ascending=False).

df.isna().sum().sort_values(ascending=False)
Amount_spent        241
Referal             154
Age                  42
Gender               28
Employees_status     26
Transaction_date      0
Marital_status        0
State_names           0
Segment               0
Payment_method        0
dtype: int64
Hapus baris Nan

Jika kita memiliki nilai Nan yang lebih kecil maka kita dapat menghapus seluruh baris dengan fungsi dropna(). Untuk fungsi ini, kita akan menambahkan nama kolom pada parameter subset.

# df copy to df_copy
df_new = df.copy()
#Delete Nan rows of Job Columns
df_new.dropna(subset = ["Employees_status"], inplace=True)
Hapus seluruh kolom

Jika kita memiliki sejumlah besar nilai Nan di kolom tertentu, maka menghapus kolom tersebut mungkin merupakan keputusan yang baik daripada menghitung.

df_new.drop(columns=['Amount_spent'], inplace=True)
df_new.isna().sum().sort_values(ascending=False)
Referal             153
Age                  42
Gender               27
Transaction_date      0
Marital_status        0
State_names           0
Segment               0
Employees_status      0
Payment_method        0
dtype: int64
Hitung nilai yang hilang

Terkadang jika kita menghapus seluruh kolom itu bukan pendekatan yang tepat. Menghapus kolom dapat mempengaruhi pembuatan model kita karena kita akan kehilangan fitur utama kita. Untuk imputasi, kami memiliki banyak pendekatan, jadi inilah beberapa teknik yang paling populer.

Metode 1—Imputasi nilai tetap seperti 0, 'Tidak Diketahui' atau 'Hilang' dll. Kami memperhitungkan Tidak Diketahui di kolom Gender

df['Gender'].fillna('Unknown', inplace=True)

Metode 2—Impute Mean, Median, dan Modus

# Impute Mean in Amount_spent columns
mean_amount_spent = df['Amount_spent'].mean()
df['Amount_spent'].fillna(mean_amount_spent, inplace=True)

#Impute Median in Age column
median_age = df['Age'].median()
df['Age'].fillna(median_age, inplace=True)

# Impute Mode in Employees_status column
mode_emp = df['Employees_status'].mode().iloc[0]
df['Employees_status'].fillna(mode_emp, inplace=True)

Metode 3—Iputing forward fill atau backfill dengan ffill dan bfill. Pada ffill missing value imputasi dari nilai baris di atas dan untuk bfill diambil dari nilai baris di bawahnya.

df['Referal'].fillna(method='ffill', inplace=True)
df.isna().sum().sum()
0

Sekarang kita berurusan dengan semua nilai yang hilang dengan metode yang berbeda. Jadi sekarang kami tidak memiliki nilai nol.

4. Manajemen memori

Ketika kami bekerja pada kumpulan data besar, kami mendapatkan satu masalah besar adalah masalah memori. Kami membutuhkan sumber daya yang terlalu besar untuk menangani ini. Tetapi ada beberapa metode di panda untuk mengatasi ini. Berikut adalah beberapa metode atau strategi untuk mengatasi masalah ini dengan bantuan panda.

Ubah tipe data

Dari mengubah satu tipe data ke tipe data lainnya, kita dapat menghemat banyak memori. Salah satu trik populer adalah mengubah objek ke kategori yang akan mengurangi memori bingkai data kita secara drastis.

Pertama, kita akan menyalin bingkai data df sebelumnya ke df_memory dan kita akan menghitung total penggunaan memori dari bingkai data ini menggunakan metode memory_usage(deep=True).

df_memory = df.copy()
memory_usage = df_memory.memory_usage(deep=True)
memory_usage_in_mbs = round(np.sum(memory_usage / 1024 ** 2), 3)
print(f" Total memory taking df_memory dataframe is : {memory_usage_in_mbs:.2f} MB ")
Total memory taking df_memory dataframe is : 1.15 MB
Ubah objek ke tipe data kategori

Bingkai data kami berukuran kecil. Yaitu 1,15 MB. Sekarang Kita akan mengubah tipe data objek kita menjadi kategori.

# Object datatype to category convert
df_memory[df_memory.select_dtypes(['object']).columns] = df_memory.select_dtypes(['object']).apply(lambda x: x.astype('category'))
# convert object to category
df_memory.info(memory_usage="deep")
<class 'pandas.core.frame.DataFrame'>
Int64Index: 2500 entries, 0 to 2511
Data columns (total 10 columns):
 #   Column            Non-Null Count  Dtype   
---  ------            --------------  -----   
 0   Transaction_date  2500 non-null   category
 1   Gender            2500 non-null   category
 2   Age               2500 non-null   float64 
 3   Marital_status    2500 non-null   category
 4   State_names       2500 non-null   category
 5   Segment           2500 non-null   category
 6   Employees_status  2500 non-null   category
 7   Payment_method    2500 non-null   category
 8   Referal           2500 non-null   float64 
 9   Amount_spent      2500 non-null   float64 
dtypes: category(7), float64(3)
memory usage: 189.1 KB

Sekarang berkurang 1,15 megabyte menjadi 216,6 KB. Hampir berkurang 5,5 kali.

Ubah int64 atau float64 menjadi int 32, 16, atau 8

Secara default, panda menyimpan nilai numerik ke int64 atau float64. Yang membutuhkan lebih banyak memori. Jika kita harus menyimpan angka kecil maka kita bisa mengubahnya menjadi 64 menjadi 32, 16, dan seterusnya. Misalnya kolom Referral kita hanya memiliki nilai 0 dan 1 jadi untuk itu kita tidak perlu menyimpan di float64. jadi sekarang kita ubah ke float16.

# Change Referal column datatypes
df_memory['Referal'] = df_memory['Referal'].astype('float32')
# convert object to category
df_memory.info(memory_usage="deep")
<class 'pandas.core.frame.DataFrame'>
Int64Index: 2500 entries, 0 to 2511
Data columns (total 10 columns):
 #   Column            Non-Null Count  Dtype   
---  ------            --------------  -----   
 0   Transaction_date  2500 non-null   category
 1   Gender            2500 non-null   category
 2   Age               2500 non-null   float64 
 3   Marital_status    2500 non-null   category
 4   State_names       2500 non-null   category
 5   Segment           2500 non-null   category
 6   Employees_status  2500 non-null   category
 7   Payment_method    2500 non-null   category
 8   Referal           2500 non-null   float32 
 9   Amount_spent      2500 non-null   float64 
dtypes: category(7), float32(1), float64(2)
memory usage: 179.3 KB

Setelah mengubah hanya satu tipe data kolom, kami mengurangi 216 KB menjadi 179 KB.

Catatan: Sebelum mengubah tipe data, pastikan itu konsekuensinya.

5. Analisis Data

5.1. Menghitung Pengukuran statistik dasar

Di bagian analisis data, kita perlu menghitung beberapa pengukuran statistik. Untuk menghitung panda ini memiliki beberapa fungsi yang berguna. Fungsi pertama yang berguna adalah mendeskripsikan() fungsi yang akan menampilkan sebagian besar pengukuran statistik dasar. Untuk fungsi ini, Anda dapat menambahkan .T untuk mengubah tampilan. Ini akan memudahkan untuk melihat ketika ada beberapa kolom.

df.describe().T
Panduan Lengkap Menggunakan Pandas Di Python Untuk Data Science

Fungsi di atas hanya menampilkan informasi kolom numerik. count menunjukkan berapa banyak nilai yang ada. mean menunjukkan nilai rata-rata setiap kolom. std menunjukkan standar deviasi kolom, yang mengukur jumlah variasi atau dispersi dari sekumpulan nilai. min adalah nilai minimum setiap kolom. 25%, 50%, dan 75% menunjukkan nilai total terletak pada kelompok itu, dan akhirnya max menunjukkan nilai maksimum dari kolom itu.

Kita sudah tahu kode di atas hanya akan menampilkan kolom numerik informasi statistik dasar. untuk kolom objek atau kategori kita dapat menggunakan deskripsi(include=object) .

df.describe(include=object).T
Panduan Lengkap Menggunakan Pandas Di Python Untuk Data Science

Informasi di atas, count menunjukkan berapa banyak nilai yang ada. unik adalah berapa banyak nilai yang unik di kolom itu. Bagian atas adalah jumlah nilai tertinggi yang terletak dalam kategori itu. freq menunjukkan berapa banyak nilai yang sering terletak pada nilai teratas itu.

Kita dapat menghitung mean, median, mode, nilai maksimum, nilai minimum dari masing-masing kolom, kita cukup menggunakan fungsi-fungsi ini.

# Calculate Mean
mean = df['Age'].mean()

# Calculate Median
median = df['Age'].median()

#Calculate Mode
mode = df['Age'].mode().iloc[0]

# Calculate standard deviation
std = df['Age'].std()

# Calculate Minimum values
minimum = df['Age'].min()

# Calculate Maximum values
maximum = df.Age.max()

print(f" Mean of Age : {mean}")
print(f" Median of Age : {median}")
print(f" Mode of Age : {mode}")
print(f" Standard deviation of Age : {std:.2f}")
print(f" Maximum of Age : {maximum}")
print(f" Menimum of Age : {minimum}")
Mean of Age : 46.636
 Median of Age : 47.0
 Mode of Age : 47.0
 Standard deviation of Age : 18.02
 Maximum of Age : 78.0
 Menimum of Age : 15.0

Di panda, kita dapat menampilkan korelasi kolom numerik yang berbeda. Untuk ini, kita dapat menggunakan fungsi .corr().

# calculate correlation
df.corr()
Panduan Lengkap Menggunakan Pandas Di Python Untuk Data Science
5.2 Fungsi bawaan dasar untuk analisis data

Di panda, ada begitu banyak fungsi dasar yang berguna yang tersedia untuk analisis data. Di bagian ini, kami mengeksplorasi beberapa fungsi yang paling sering digunakan.

Jumlah nilai unik di kolom kategori

Untuk menampilkan jumlah semua nilai unik, kami menggunakan nunique() fungsi nama kolom yang diinginkan. Misalnya, tampilkan nilai unik total di kolom State_names kita menggunakan fungsi ini:

# for display how many unique values are there in State_names column
df['State_names'].nunique()
50
Menampilkan semua nilai unik

Untuk menampilkan semua nilai unik kami menggunakan fungsi unique() dengan nama kolom yang diinginkan.

# for display uniqe values of State_names column
df['State_names'].unique()
array(['Kansas', 'Illinois', 'New Mexico', 'Virginia', 'Connecticut',
       'Hawaii', 'Florida', 'Vermont', 'California', 'Colorado', 'Iowa',
       'South Carolina', 'New York', 'Maine', 'Maryland', 'Missouri',
       'North Dakota', 'Ohio', 'Nebraska', 'Montana', 'Indiana',
       'Wisconsin', 'Alabama', 'Arkansas', 'Pennsylvania',
       'New Hampshire', 'Washington', 'Texas', 'Kentucky',
       'Massachusetts', 'Wyoming', 'Louisiana', 'North Carolina',
       'Rhode Island', 'West Virginia', 'Tennessee', 'Oregon', 'Alaska',
       'Oklahoma', 'Nevada', 'New Jersey', 'Michigan', 'Utah', 'Arizona',
       'South Dakota', 'Georgia', 'Idaho', 'Mississippi', 'Minnesota',
       'Delaware'], dtype=object)
Hitungan nilai unik

Untuk menampilkan jumlah nilai unik, kami menggunakan metode value_counts(). Fungsi ini akan menampilkan nilai unik dengan nomor dari setiap nilai yang muncul. Sebagai contoh, jika kita ingin mengetahui berapa banyak nilai unik kolom Gender dengan nilai frekuensi jumlah maka kita menggunakan metode di bawah ini.

df['Gender'].value_counts()
Female     1351
Male       1121
Unknown      28
Name: Gender, dtype: int64

Jika kita ingin menunjukkan dengan persentase kemunculan daripada angka, kita menggunakan argumen normalize=True dalam fungsi value_counts()

# Calculate percentage of each category
df['Gender'].value_counts(normalize=True)
Female     0.5404
Male       0.4484
Unknown    0.0112
Name: Gender, dtype: float64
df['State_names'].value_counts().sort_values(ascending = False).head(20)
Illinois         67
Georgia          64
Massachusetts    63
Maine            62
Kentucky         59
Minnesota        59
Delaware         56
Missouri         56
New York         55
New Mexico       55
Arkansas         55
California       55
Arizona          55
Nevada           55
Vermont          54
New Jersey       53
Oregon           53
Florida          53
West Virginia    53
Washington       52
Name: State_names, dtype: int64
>Urutkan nilai

Jika kita ingin mengurutkan bingkai data berdasarkan kolom tertentu, kita perlu menggunakan metode sort_values(). Kita dapat menggunakan pengurutan berdasarkan urutan menaik atau menurun. Secara default, ini dalam urutan menaik. Jika kita ingin menggunakan urutan menurun maka kita hanya perlu meneruskan argumen ascending=False di sort_values() fungsi.

# Sort Values by State_names
df.sort_values(by=['State_names']).head(3)
Panduan Lengkap Menggunakan Pandas Di Python Untuk Data Science

Untuk menyortir bingkai data kami berdasarkan Amount_spent dengan urutan menaik:

# Sort Values Amount_spent with ascending order
df.sort_values(by=['Amount_spent']).head(3)
Panduan Lengkap Menggunakan Pandas Di Python Untuk Data Science

Untuk menyortir bingkai data kami berdasarkan Amount_spent dengan urutan menurun:

# Sort Values Amount_spent with descending order
df.sort_values(by=['Amount_spent'], ascending=False).head(3)
Panduan Lengkap Menggunakan Pandas Di Python Untuk Data Science

Atau, Kita dapat menggunakan fungsi nlargest() dan nsmallest() untuk menampilkan nilai terbesar dan terkecil dengan angka yang diinginkan. misalnya, Jika kita ingin menampilkan 4 baris Amount_spent terbesar maka kita menggunakan ini:

# nlargest
df.nlargest(4, 'Amount_spent').head(10) # first argument is how many rows you want to disply and second one is columns name
Panduan Lengkap Menggunakan Pandas Di Python Untuk Data Science

Untuk 3 baris Amount_spent terkecilZ

# nsmallest
df.nsmallest(3, 'Age').head(10)
Kueri bersyarat pada Data

Jika kita ingin menerapkan satu kondisi maka pertama-tama kita akan memberikan satu kondisi kemudian kita meneruskan pada bingkai data. Misalnya, jika kami ingin menampilkan semua baris di mana Payment_method adalah PayPal, maka kami menggunakan ini:

# filtering - Only show Paypal users
condition = df['Payment_method'] == 'PayPal'
df[condition].head(4)

Kami dapat menerapkan beberapa kueri bersyarat seperti sebelumnya. Misalnya, jika kita ingin menampilkan semua wanita yang sudah menikah yang tinggal di New York maka kita menggunakan yang berikut ini:

# first create 3 condition
female_person = df['Gender'] == 'Female'
married_person = df['Marital_status'] == 'Married'
loc_newyork = df['State_names'] == 'New York'

# we passing condition on our dataframe
df[female_person & married_person & loc_newyork].head(4)
5.3 Meringkas atau mengelompokkan data
Kelompokkan menurut

Di Pandas group by function lebih populer di bagian analisis data. Ini memungkinkan untuk membagi dan mengelompokkan data, menerapkan fungsi, dan menggabungkan hasilnya. Kita dapat memahami fungsi ini dan menggunakannya dengan contoh di bawah ini:

Pengelompokan berdasarkan satu kolom: Misalnya, jika kita ingin mencari nilai maksimum Age dan Amount_spent by Gender maka kita dapat menggunakan ini:

df[['Age', 'Amount_spent']].groupby(df['Gender']).max()

Untuk mencari nilai mean, count, dan max dari Age dan Amount_spent by Gender maka kita dapat menggunakan fungsi agg() dengan groupby() .

# Group by one columns
state_gender_res = df[['Age','Gender','Amount_spent']].groupby(['Gender']).agg(['count', 'mean', 'max'])
state_gender_res

Pengelompokan berdasarkan beberapa kolom: Untuk menemukan jumlah total, nilai maksimum dan minimum Amount_spent by State_names, Gender, dan Payment_method maka kita dapat meneruskan nama kolom ini di bawah fungsi groupby() dan menambahkan .agg() dengan argumen count, mean, max.

#Group By multiple columns
state_gender_res = df[['State_names','Gender','Payment_method','Amount_spent']].groupby([ 'State_names','Gender', 'Payment_method']).agg(['count', 'min', 'max'])
state_gender_res.head(12)
Tabulasi Silang (Cross tab)

Tabulasi silang (juga disebut sebagai tab silang) adalah metode untuk menganalisis secara kuantitatif hubungan antara beberapa variabel. Juga dikenal sebagai tabel kontingensi. Ini akan membantu untuk memahami korelasi antara variabel yang berbeda. Untuk membuat tabel ini, panda memiliki fungsi bawaan crosstab().

Untuk membuat tab silang sederhana antara kolom Maritatal_status dan Payment_method, kita cukup menggunakan tab silang() dengan kedua nama kolom.

pd.crosstab(df.Marital_status, df.Payment_method)
Panduan Lengkap Menggunakan Pandas Di Python Untuk Data Science

Kami dapat menyertakan subtotal dengan parameter margin:

pd.crosstab(df.Marital_status, df.Payment_method, margins=True, margins_name="Total")
Panduan Lengkap Menggunakan Pandas Di Python Untuk Data Science

Jika Kami ingin tampilan dengan persentase dari normalize=True parameter help

pd.crosstab(df.Marital_status, df.Payment_method, normalize=True, margins=True, margins_name="Total")
Panduan Lengkap Menggunakan Pandas Di Python Untuk Data Science

Dalam fitur tab silang ini, kita dapat melewatkan beberapa nama kolom untuk mengelompokkan dan menganalisis data. Sebagai contoh, jika kita ingin melihat bagaimana Payment_method dan Employee_status didistribusikan oleh Marital_status maka kita akan melewatkan nama-nama kolom ini dalam fungsi crosstab() dan akan ditampilkan di bawah ini.

pd.crosstab(df.Marital_status, [df.Payment_method, df.Employees_status])
Panduan Lengkap Menggunakan Pandas Di Python Untuk Data Science

6. Visualisasi Data

Visualisasi adalah kunci untuk analisis data. Paket python paling populer untuk visualisasi adalah matplotlib dan seaborn tetapi terkadang panda akan berguna untuk Anda. Panda juga menyediakan beberapa plot visualisasi dengan mudah. Untuk bagian analisis dasar, akan mudah digunakan. Untuk bagian ini, kami menjelajahi beberapa jenis plot yang berbeda menggunakan panda. Berikut plotnya.

6.1 Plot garis

Plot garis adalah yang paling sederhana dari semua plot grafis. Plot garis digunakan untuk mengikuti perubahan sepanjang waktu dan menampilkan informasi sebagai rangkaian. Bagan garis ideal untuk membandingkan beberapa variabel dan memvisualisasikan tren untuk variabel tunggal dan ganda.

Untuk membuat plot garis di panda, kami menggunakan .plot() nama dua kolom untuk argumennya. Misalnya, kami membuat plot garis dari satu kumpulan data dummy.

dict_line = {
    'year': [2016, 2017, 2018, 2019, 2020, 2021],
    'price': [200, 250, 260, 220, 280, 300]
}
df_line = pd.DataFrame(dict_line)
# use plot() method on the dataframe
df_line.plot('year', 'price');
Panduan Lengkap Menggunakan Pandas Di Python Untuk Data Science

Bagan garis di atas menunjukkan harga selama waktu yang berbeda. Ini menunjukkan seperti tren harga.

6.2 Petak Diagram

Plot batang juga dikenal sebagai diagram batang yang menunjukkan nilai kuantitatif atau kualitatif untuk item kategori yang berbeda. Dalam sebuah bar, data plot direpresentasikan dalam bentuk bar. Panjang atau tinggi batang digunakan untuk mewakili nilai kuantitatif untuk setiap item. Plot batang dapat diplot secara horizontal atau vertikal. Untuk membuat plot ini lihat di bawah.

Untuk diagram horizontal:

df['Employees_status'].value_counts().plot(kind='bar');
Panduan Lengkap Menggunakan Pandas Di Python Untuk Data Science

Untuk diagram vertikal:

6.3 Plot pai

Plot pie juga dikenal sebagai diagram lingkaran. Pie plot adalah grafik melingkar yang mewakili nilai total dengan komponen-komponennya. Luas lingkaran mewakili nilai total dan berbagai sektor lingkaran mewakili bagian-bagian yang berbeda. Dalam plot ini, data dinyatakan sebagai persentase. Setiap komponen dinyatakan sebagai persentase dari nilai total.

Di panda untuk membuat plot pai. Kami menggunakan fungsi kind=pie in plot() di kolom atau seri bingkai data.

df['Segment'].value_counts().plot(
    kind='pie');
Panduan Lengkap Menggunakan Pandas Di Python Untuk Data Science
6.4 Petak Kotak

Plot kotak juga dikenal sebagai plot kotak dan kumis. Plot ini digunakan untuk menunjukkan distribusi suatu variabel berdasarkan kuartilnya. Plot kotak menampilkan ringkasan lima angka dari sekumpulan data. Ringkasan lima angka adalah minimum, kuartil pertama, median, kuartil ketiga, dan maksimum. Ini juga akan populer untuk mengidentifikasi outlier.

Kita dapat memplot ini dengan satu kolom atau beberapa kolom. Untuk beberapa kolom, kita perlu memberikan nama kolom dalam variabel y sebagai daftar.

df.plot(y=['Amount_spent'], kind='box');
Panduan Lengkap Menggunakan Pandas Di Python Untuk Data Science
Panduan Lengkap Menggunakan Pandas Di Python Untuk Data Science

Dalam plot kotak, kita dapat memplot distribusi variabel kategori terhadap variabel numerik dan membandingkannya. Mari kita plot dengan kolom Employee_status dan Amount_spent dengan metode pandas boxplot():

import matplotlib.pyplot as plt

np.warnings.filterwarnings('ignore', category=np.VisibleDeprecationWarning) 
fig, ax = plt.subplots(figsize=(6,6)) 

df.boxplot(by ='Employees_status', column =['Amount_spent'],ax=ax, grid = False);
Panduan Lengkap Menggunakan Pandas Di Python Untuk Data Science
6.5 Histogram

Histogram menunjukkan frekuensi dan distribusi pengukuran kuantitatif di seluruh nilai yang dikelompokkan untuk item data. Ini biasanya digunakan dalam statistik untuk menunjukkan berapa banyak jenis variabel tertentu yang terjadi dalam rentang atau ember tertentu. Di bawah ini kami akan memplot histogram untuk melihat distribusi Usia.

df.plot(
    y='Age',
    kind='hist',
    bins=10
);
Panduan Lengkap Menggunakan Pandas Di Python Untuk Data Science
6.6 plot KDE

Plot estimasi kepadatan kernel (KDE) adalah metode untuk memvisualisasikan distribusi pengamatan dalam kumpulan data, analog dengan histogram. KDE mewakili data menggunakan kurva kepadatan probabilitas kontinu dalam satu atau lebih dimensi.

df.plot(
    y='Age',
    xlim=(0, 100),
    kind='kde'
);
Panduan Lengkap Menggunakan Pandas Di Python Untuk Data Science
6.7 Plot pencar

Sebuah plot pencar digunakan untuk mengamati dan menunjukkan hubungan antara dua variabel kuantitatif untuk item kategori yang berbeda. Setiap anggota kumpulan data diplot sebagai titik yang koordinat xy terkait dengan nilainya untuk dua variabel. Di bawah ini kita akan membuat plot sebar untuk menampilkan hubungan antara kolom Age dan Amount_spent.

df.plot(
    x='Age',
    y='Amount_spent',
    kind='scatter'
);
Panduan Lengkap Menggunakan Pandas Di Python Untuk Data Science

7. Pikiran Akhir

Dalam artikel ini, kita mengetahui bagaimana panda dapat digunakan untuk membaca, memproses, menganalisis, dan memvisualisasikan data. Ini juga dapat digunakan untuk manajemen memori untuk komputasi cepat dengan sumber daya yang lebih sedikit. Motif utama artikel ini adalah untuk membantu orang-orang yang ingin belajar panda untuk analisis data.

Apakah Anda memiliki pertanyaan atau bantuan terkait dengan artikel ini, jangan ragu untuk menghubungi saya di LinkedIn. Jika Anda merasa artikel ini bermanfaat, silakan ikuti saya untuk pembelajaran lebih lanjut. Saran dan umpan balik Anda selalu diterima. Terima kasih telah membaca artikel saya. Selamat belajar.

Jangan ragu untuk memeriksa repo GitHub untuk tutorial ini.

8. Referensi

  1. Panduan pengguna Pandas
  2. Pandas 1.x Buku Masak
  3. Lokakarya Penanganan Data
  4. Python untuk Analisis Data
  5. Analisis Data dengan Python: Zero to Pandas—Jovian YouTube Channel
  6. Praktik terbaik dengan panda—Saluran YouTube Data School
  7. Tutorial Pandas—Saluran YouTube Corey Schafer
  8. Panda Crosstab Dijelaskan