CoolFace
Apppublic

hansaal/Census-Income-Prediction-Tool

sourceHugging Faceupdated 2y agoView on Hugging Face
0likes
eda.py111 linesDownload Raw Back to root
1import streamlit as st
2import pandas as pd
3import numpy as np
4import seaborn as sns
5from PIL import Image
6import plotly.express as px
7import matplotlib.pyplot as plt
8
9# Function untuk nge-run
10def run():
11
12        # Membuat Title
13    st.title("Adult Census Income")
14
15        # Membuat Subheader
16    st.subheader("Unveiling Patterns in Income Data")
17
18        # Membuat Description
19    st.markdown("""
20    Halaman ini berisi eksplorasi mendalam dari dataset Census Adult, 
21    menyoroti tren dan pola penting yang memengaruhi tingkat pendapatan. 
22    Temukan bagaimana faktor seperti usia, pendidikan, dan pekerjaan 
23    berkontribusi pada distribusi pendapatan.
24    """)
25
26        # Menambahkan Deskripsi
27    st.write('*Halaman ini dibuat oleh Haniifah Salmaa*')
28
29        # Membuat garis lurus horizontal
30    st.markdown('---')
31
32        # Menampilkan DataFrame
33    df = pd.read_csv('census.csv')
34    st.dataframe(df)
35
36        # Menampilkan visualisasi 1
37    st.write('### Pengaruh Pendidikan terhadap Capital Gain dan Capital Loss berdasarkan Pendapatan')
38    fig = plt.figure(figsize=(13,6))
39    sns.scatterplot(x='education.num', y='capital.gain', data=df, hue='income')
40    plt.title('Capital Gain vs Education by Income')
41    st.pyplot(fig)
42
43    fig = plt.figure(figsize=(10,6))
44    sns.scatterplot(x='education.num', y='capital.loss', data=df, hue='income')
45    plt.title('Capital Loss vs Education by Income')
46    st.pyplot(fig)
47
48        # Menampilkan visualisasi 2
49    st.write('### Hubungan antara Pendapatan dan Final Weight')
50    fig = plt.figure(figsize=(10,6))
51    sns.boxplot(x='income', y='fnlwgt', data=df)
52    plt.title('Income vs Final Weight')
53    plt.xlabel('Income')
54    plt.ylabel('Final Weight')
55    st.pyplot(fig)
56
57        # Menampilkan visualisasi 3
58    region_mapping = {
59        'United-States': 'North America',
60        'Canada': 'North America',
61        'Mexico': 'North America',
62        'Puerto-Rico': 'North America',
63        'Outlying-US(Guam-USVI-etc)': 'North America',
64        'Dominican-Republic': 'Central/South America',
65        'El-Salvador': 'Central/South America',
66        'Honduras': 'Central/South America',
67        'Jamaica': 'Central/South America',
68        'Guatemala': 'Central/South America',
69        'Columbia': 'Central/South America',
70        'Ecuador': 'Central/South America',
71        'Haiti': 'Central/South America',
72        'Peru': 'Central/South America',
73        'Trinadad&Tobago': 'Central/South America',
74        'Brazil': 'Central/South America',
75        'India': 'Asia',
76        'Philippines': 'Asia',
77        'China': 'Asia',
78        'Japan': 'Asia',
79        'Iran': 'Asia',
80        'Cambodia': 'Asia',
81        'Laos': 'Asia',
82        'Taiwan': 'Asia',
83        'Hong': 'Asia',
84        'Thailand': 'Asia',
85        'Vietnam': 'Asia',
86        'Germany': 'Europe',
87        'France': 'Europe',
88        'Poland': 'Europe',
89        'Italy': 'Europe',
90        'England': 'Europe',
91        'Portugal': 'Europe',
92        'Ireland': 'Europe',
93        'Hungary': 'Europe',
94        'Yugoslavia': 'Europe',
95        'Scotland': 'Europe',
96        'Holand-Netherlands': 'Europe',
97        'Greece': 'Europe',
98        np.nan: 'Other',
99        'South': 'Other'
100    }
101    df['region'] = df['native.country'].map(region_mapping)
102
103    st.write('### Distribusi Pendapatan Berdasarkan Negara Asal')
104    fig = plt.figure(figsize=(7, 4))
105    sns.countplot(data=df, x='region', hue='income', palette='pastel')
106    plt.title('Income Distribution by Region')
107    plt.xlabel('')
108    plt.ylabel('Count')
109    plt.tight_layout()
110    st.pyplot(fig)
111