Telcommunications Data with Preswald

Amrutha GujjarAmrutha Gujjarβ€’β€’3 min read

Category: Community


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! πŸš€