Exploratory
Data Analysis adalah
suatu proses awal mengidentifikasi pola, menemukan anomali, menguji hipotesis
dan memeriksa asumsi pada data. EDA
berguna dalam mendeteksi kesalahan dari awal, dapat mengidentifikasi outlier,
mengetahui hubungan antar data serta dapat menggali faktor-faktor penting dari
data dan memberikan wawasan baru. EDA sangat bermanfaat untuk analisis
statistik. EDA sering kali digunakan untuk menemukan hasil yang valid dan
relevan sebagai arah tujuan bisnis yang diinginkan.
Berikut contoh program EDA:
Import library yang diperlukan
import pandas as pd import numpy as np |
Buka file
yang diperlukan
data_df = pd.read_excel('Global Superstore Orders 2016.xlsx') |
Data
Understanding
Tampilkan 5 baris pertama data menggunakan .head()
data_df.head() |
data_df.tail() |
untuk menampilkan informasi
tentang data gunakan .info(), dari fungsi ini kitab isa mengetahui nama dan
type data dari masing2 kolom, selain itu kita juga bisa mengetahui ada berapa
jumlah baris non-null dalam sebuah kolom
data_df.info() |
.columns untuk menampilkan nama2
kolom dari data
data_df.columns |
Kemudian untuk
menampilkan nama kolom, banyaknya baris perkolom, dan nilai unik (tidak ada
duplikasi) menggunakan kode di bawah. unique() digunakan untuk menampilkan
nilai unik (tidak ada duplikasi)
for col in data_df.columns: print(col, len(data_df[col].unique()), data_df[col].unique()) |
Kemudian untuk
mendeskripsikan data seperti nilai rata2, nilai maks, nilai minimal dari data
dll, menggunakan describe(), hanya data numerik yang akan dimunculkan.
data_df.describe() |
Jika diawal menggunakan .info()
untuk menampilkan nama kolom, berapa jumlah baris non-null dan type data kolom.
Kita juga bisa hanya menampilkan nama kolom dan type datanya menggunakan .dtypes
data_df.dtypes |
Kemudian cek
apakah ada dan berapa jumlah nilai null dalam kolom. Dari gambar dibawah
menunjukkan ada kolom berisi nilai null yaitu kolom “Postal Code” sebanyak
41296.
data_df.isna().sum() |
Data Visualization
from matplotlib import pyplot as plt import seaborn as sns |
Pecah kolom “Order Date” menjadi 3
kolom yaitu: “Order Day”, ”Oder Month”, ”Order Year”
data_df['Order Day'] = data_df['Order Date'].dt.day data_df['Order Month'] = data_df['Order Date'].dt.month data_df['Order Year'] = data_df['Order Date'].dt.year |
Buat variable baru
yang berisi jumlah penjualan menurut bulan tahun
penjualan_df = data_df.groupby(['Order
Year', 'Order Month']) penjualan_df = penjualan_df[['Sales']].sum().reset_index() |
Dari barplot di bawah menunjukkan jumlah
penjualan mengalami naik turun tiap bulan
antar tahunnya.
sns.barplot(data = penjualan_df,
x='Order Month', y= 'Sales',
hue='Order
Year'
).set_title('sum of sales based on month') |
Grafik lineplot
lebih mudah untuk diamati, yaitu di setiap tahunnya pada bulan ke 2, 4, 7, dan
10 jumlah penjualan mengalami penurunan. Sedangkan pada bulan 3, 6, 8, 9, 11
cenderung mengalami kenaikan. Dari hasil ini dapat digunakan untuk menentukan seperti
penambahan jumlah stok pada bulan adanya kenaikan jumlah penjualan, ataupun
pengurangan stok pada bulan Ketika mengalami penurunan jumlah penjualan.
sns.lineplot(x='Order
Month', y= 'Sales',
data = penjualan_df,
hue='Order
Year', style='Order Year', markers=True,
dashes=False).set_title('sum of sales based on month') # plt.xlim(1) plt.ylim(0) |
Buat variable baru yang berisi
jumlah penjualan menurut tahun
penjualan_df_year = data_df.groupby(['Order
Year']) penjualan_df_year = penjualan_df_year['Sales'].sum().reset_index() |
Dari barplot dan lineplot di bawah
menunjukkan bahwa jumlah penjualan mengalami peningkatan tiap tahunnya
sns.barplot(x='Order
Year', y= 'Sales',
data = penjualan_df_year).set_title('sum of sales based on year') |
sns.lineplot(x='Order
Year', y= 'Sales',
data = penjualan_df).set_title('sum of sales based on year') |
Buat variable baru yang berisi jumlah penjualan menurut kategori
penjualan_df_category = data_df.groupby(['Category']) penjualan_df_category = penjualan_df_category['Sales'].sum().reset_index() |
Menampilkan jumlah penjualan per
kategori menggunakan dictionary
dict_cat_sales={} category= data_df['Category'].unique() # print('category:
{}'.format(category)) for c in category: dict_cat_sales[c] = (penjualan_df_category['Sales'][penjualan_df_category['Category']==c].sum()) print('dictt_cat_sales: {}'.format(dict_cat_sales)) |
Dari barplot di bawah menunjukkan
kategori Technology memiliki jumlah penjualan tertinggi dan Office
Suply memiliki jumlah penjualan terendah
sns.barplot(x='Category', y= 'Sales',
data = penjualan_df_category).set_title('sum of sales based on
category') |
Source Code dan file: https://github.com/javid321/Data-Science-Data-Analyst/tree/main/EDA
Reference:
https://dqlab.id/data-analisis-machine-learning-untuk-proses-pengolahan-data
https://algorit.ma/blog/exploratory-data-analysis-2022/
0 Komentar