|
|
import streamlit as st |
|
|
import pandas as pd |
|
|
import seaborn as sns |
|
|
import matplotlib.pyplot as plt |
|
|
|
|
|
|
|
|
df = pd.read_csv('Time-Wasters on Social Media.csv') |
|
|
|
|
|
|
|
|
st.title("Country-wise Addiction Levels by Demographics") |
|
|
|
|
|
|
|
|
countries = df['Location'].unique() |
|
|
selected_country = st.selectbox("Select Country", countries) |
|
|
|
|
|
|
|
|
genders = df['Gender'].unique() |
|
|
selected_gender = st.selectbox("Select Gender", genders) |
|
|
|
|
|
|
|
|
min_age, max_age = int(df['Age'].min()), int(df['Age'].max()) |
|
|
selected_age_range = st.slider("Select Age Range", min_age, max_age, (min_age, max_age)) |
|
|
|
|
|
|
|
|
platforms = df['Platform'].unique() |
|
|
selected_platform = st.selectbox("Select Platform", platforms) |
|
|
|
|
|
|
|
|
filtered_data = df[ |
|
|
(df['Location'] == selected_country) & |
|
|
(df['Gender'] == selected_gender) & |
|
|
(df['Age'] >= selected_age_range[0]) & |
|
|
(df['Age'] <= selected_age_range[1]) & |
|
|
(df['Platform'] == selected_platform) |
|
|
] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
avg_addiction_level = filtered_data['Addiction Level'].mean() |
|
|
|
|
|
|
|
|
st.subheader(f"Average Addiction Level in {selected_country} for {selected_gender} users aged {selected_age_range[0]} to {selected_age_range[1]} on {selected_platform}:") |
|
|
st.write(f"*{avg_addiction_level:.2f}*") |
|
|
|
|
|
|
|
|
st.subheader("Addiction Level Distribution") |
|
|
|
|
|
plt.figure(figsize=(10, 6)) |
|
|
sns.histplot(data=filtered_data, x='Addiction Level', kde=True, bins=10, color='teal') |
|
|
plt.title(f"Addiction Level Distribution in {selected_country} for {selected_gender} users") |
|
|
plt.xlabel('Addiction Level') |
|
|
plt.ylabel('Frequency') |
|
|
|
|
|
|
|
|
st.pyplot(plt) |
|
|
|
|
|
|
|
|
watch_reason_counts = filtered_data['Watch Reason'].value_counts() |
|
|
|
|
|
st.subheader("Most Common Watch Reasons") |
|
|
st.write(watch_reason_counts) |