File size: 2,232 Bytes
c044378
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
import streamlit as st
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

# Sample data (replace this with your actual data)
df = pd.read_csv('Time-Wasters on Social Media.csv')

# Set up Streamlit layout
st.title("Country-wise Addiction Levels by Demographics")

# Country Selection Dropdown
countries = df['Location'].unique()
selected_country = st.selectbox("Select Country", countries)

# Gender Selection
genders = df['Gender'].unique()
selected_gender = st.selectbox("Select Gender", genders)

# Age Slider (assuming 'Age' column is in the dataset)
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))

# Platform Selection
platforms = df['Platform'].unique()
selected_platform = st.selectbox("Select Platform", platforms)

# Filter Data based on user selections
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)
]

# Show filtered data as a table (optional, for debugging purposes)
# st.write(filtered_data)

# Calculate average addiction level for the filtered data
avg_addiction_level = filtered_data['Addiction Level'].mean()

# Display the result
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}*")

# Visualize the Addiction Level (you can use any type of plot, here we use a bar chart)
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')

# Display the plot in Streamlit
st.pyplot(plt)

# Show a breakdown of the most common watch reasons for the filtered data
watch_reason_counts = filtered_data['Watch Reason'].value_counts()

st.subheader("Most Common Watch Reasons")
st.write(watch_reason_counts)