CoolFace
Apppublic

grcvlrn/Deployment

sourceHugging Faceupdated 2y agoView on Hugging Face
0likes
eda.py87 linesDownload Raw Back to root
1import streamlit as st2import matplotlib.pyplot as plt3import seaborn as sns4import pandas as pd5 6# Define function to plot sentiment distribution7def payment_counts_distribution(df):8    payment_counts = df['default_payment_next_month'].value_counts()9    plt.figure(figsize=(8, 6))10    plt.pie(payment_counts, labels=payment_counts.index, autopct='%.0f%%', startangle=140)11    plt.title('Payment Distribution')12    plt.show()13 14def limit_balance_distribution(df):15    sns.histplot(df['limit_balance'], bins=50, kde=True)16    plt.title('Balance Distribution')17    plt.xlabel('Balance')18    plt.ylabel('Frequency')19    plt.show()20 21def sex_distribution(df):22    sex_counts = df['sex'].value_counts()23    plt.figure(figsize=(8, 6))24    plt.pie(sex_counts, labels=sex_counts.index, autopct='%.0f%%', startangle=140)25    plt.title('Gender Distribution')26    plt.show()27 28def education_level_distribution(df):29    edu_counts = df['education_level'].value_counts()30    plt.figure(figsize=(8, 6))31    plt.pie(edu_counts, labels=edu_counts.index, autopct='%.0f%%', startangle=140)32    plt.title('Education Level Distribution')33    plt.show()34 35def marital_status_distribution(df):36    status_counts = df['marital_status'].value_counts()37    plt.figure(figsize=(8, 6))38    plt.pie(status_counts, labels=status_counts.index, autopct='%.0f%%', startangle=140)39    plt.title('Marital Status Distribution')40    plt.show()41 42def age_distribution(df):43    sns.histplot(df['age'], bins=25, kde=True)44    plt.title('Age Distribution')45    plt.xlabel('Age')46    plt.ylabel('Frequency')47    plt.show()48 49 50st.title("Sentiment Analysis Visualization")51 52uploaded_file = st.file_uploader("P1G5_Set_1_gracia_valerine", type="csv")53 54if uploaded_file:55    df = pd.read_csv(uploaded_file)56    st.write("Data Preview:")57    st.write(df.head())58 59    visualizations = st.multiselect(60        "Select visualizations to display",61        ["Payment Counts Distribution", "Limit Balance Distribution", "Gender Distribution",62         "Education Level Distribution", "Marital Status Distribution", "Age Distribution"]63    )64 65    if "Payment Counts Distribution" in visualizations:66        st.subheader("Payment Counts Distribution")67        payment_counts_distribution(df)68 69    if "Limit Balance Distribution" in visualizations:70        st.subheader("Limit Balance Distribution")71        limit_balance_distribution(df)72 73    if "Gender Distribution" in visualizations:74        st.subheader("Gender Distribution")75        sex_distribution(df)76 77    if "Education Level Distribution" in visualizations:78        st.subheader("Education Level Distribution")79        education_level_distribution(df)80 81    if "Marital Status Distribution" in visualizations:82        st.subheader("Marital Status Distribution")83        marital_status_distribution(df)84 85    if "Age Distribution" in visualizations:86        st.subheader("Age Distribution")87        age_distribution(df)