naufalbudianto28's picture
Update eda.py
191592e verified
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import streamlit as st
def run():
st.title('Eksplorasi Data pada Dataset Credit Card')
data = pd.read_csv("P1G5_Set_1_naufal.csv")
st.dataframe(data)
# Plot pie chart sex distribution.
st.write('### Sex Distribution')
sex_counts = data['sex'].value_counts()
fig, ax = plt.subplots()
ax.pie(sex_counts, labels=sex_counts.index, autopct='%1.1f%%', startangle=90)
ax.axis('equal')
st.pyplot(fig)
st.write('Penjelasan angka `1` pada dataset adalah Laki-laki dan `2` adalah Perempuan. Sehingga hasil dari data visualisasi di atas menunjukkan bahwa pada dataset ini jumlah Perempuan (61%) lebih banyak daripada Laki-laki (39%).')
# Plot bar chart age distribution.
st.write('### Age Distribution')
fig = plt.figure(figsize=(15, 6))
sns.countplot(x='age', data=data)
st.pyplot(fig)
st.write('Terlihat dari hasil visualisasi data, umur pada dataset memiliki variasi yang beragam dengan umur paling muda yaitu 21 tahun dan umur paling senior yaitu 69 tahun.')
# Histogram of limit balance.
st.write('### Histogram of Limit Balance')
fig = plt.figure(figsize=(10, 6))
sns.histplot(data['limit_balance'], kde=True, bins=30)
st.pyplot(fig)
st.write('Sekilas terlihat dari hasil visualisasi data, kolom `limit_balance` memiliki distribusi positively skewed dan memiliki rentang variasi data yang cukup luas (10,000 hingga 800,000 ).')
# Heatmap
st.write('### Histogram of Limit Balance')
fig = plt.figure(figsize=(15,8))
sns.heatmap(data.corr(method='spearman'), annot=True, cmap='coolwarm', fmt=".2f")
st.pyplot(fig)
st.write('Terlihat bahwa semua kolom memiliki korelasi terhadap target klasifikasi `default_payment_next_month`.')
if __name__ == '__main__':
run()