We're thrilled to feature Guhyun Chung in this edition of the Preswald Community Showcase! π Guhyun has built a compelling Preswald app that analyzes California telecommunications customer data, uncovering trends in churn, demographics, and service usage.
π Project Overview
π Preswald and Customer Analytics
This blog explores how Preswald enables rich analysis of telecommunications customer behavior, highlighting churn risk and customer demographics in an interactive, visual dashboard.
Project Name: California Telco Customer Analysis
Built by: Guhyun Chung
Dataset: California Telecommunications Customer Dataset
π Description
Guhyun's dashboard provides:
-
Demographic insights (age, gender, location)
-
Service subscription breakdowns
-
Churn distribution and risk profiling
-
Interactive filters to explore trends and behaviors
With Preswald, Guhyun transformed tabular customer data into a powerful tool for business intelligence and retention strategy.
π Code Snippets
Load and Display Customer Data
from preswald import connect, get_df, text, table
connect()
df = get_df("california_telco_data")
text("# California Telco Customer Analysis")
text(f"β
Successfully loaded dataset with {len(df)} records.")
# Display sample records
table(df.head(), title="Sample Customer Records")
Demographic Distribution
import plotly.express as px
from preswald import plotly
# Gender distribution
gender_counts = df['Gender'].value_counts().reset_index()
gender_counts.columns = ['Gender', 'Count']
fig1 = px.pie(gender_counts, values='Count', names='Gender', title='Gender Distribution')
plotly(fig1)
# Age distribution
fig2 = px.histogram(df, x='Age', nbins=20, title='Age Distribution')
plotly(fig2)
Service Subscriptions
internet_service_counts = df['InternetService'].value_counts().reset_index()
internet_service_counts.columns = ['Internet Service', 'Count']
fig3 = px.bar(internet_service_counts, x='Internet Service', y='Count', title='Internet Service Subscription')
plotly(fig3)
Churn Analysis
churn_counts = df['Churn'].value_counts().reset_index()
churn_counts.columns = ['Churn', 'Count']
fig4 = px.pie(churn_counts, values='Count', names='Churn', title='Churn Rate')
plotly(fig4)
churn_contract = df.groupby(['Contract', 'Churn']).size().reset_index(name='Count')
fig5 = px.bar(churn_contract, x='Contract', y='Count', color='Churn', barmode='group', title='Churn by Contract Type')
plotly(fig5)
π What is Preswald?
Preswald is an open-source framework for building data apps, dashboards, and internal tools with just Python. It provides pre-built UI components like tables, charts, and forms, so you don't have to write frontend code.
Preswald tracks state and dependencies, making computations efficient by updating only when necessary. It uses a workflow DAG to manage execution order, ensuring performance and predictability.
Key Features
-
Add UI components to Python scripts: user-interactive sliders, tables, and charts.
-
Structured computation using a DAG-based model.
-
Deploy with one command and share via link.
-
Cloud or local hosting.
π Getting Started
Installation
pip install preswald
Quick Start
preswald init my_project
cd my_project
preswald run
Deploy to Structured Cloud
preswald deploy --target structured
Huge Thanks to Guhyun Chung!
A big thank you to Guhyun Chung for transforming telco data into an actionable dashboard that helps businesses understand and retain their customers.
Check out more of Guhyun's work:
Want to Contribute?
Got a cool idea for a Preswald app? We'd love to see it! Get started here: https://github.com/StructuredLabs/preswald and you might be featured in our next Community Showcase.
Happy building! π