Customer Churn Analysis
Goal
Given a customer dataset with churnchurn (0/1), analyze:
- Overall churn rate
- Churn by segment (plan, region)
- Numeric differences (tenure, usage)
Analysis pipeline
flowchart LR A["Raw customers
(churn 0/1)"] --> B["Rate
(overall churn %)"] B --> C["Segment
(by plan, region)"] C --> D["Visualize
(churn by segment)"] D --> E["Model-ready
(encode, split)"]
Step 1: Load
Load
import pandas as pd
df = pd.read_csv("data/churn.csv")
print(df.shape)
print(df.head())Load
import pandas as pd
df = pd.read_csv("data/churn.csv")
print(df.shape)
print(df.head())Step 2: Churn rate
Overall churn
rate = df["churn"].mean()
print("Churn rate:", rate)Overall churn
rate = df["churn"].mean()
print("Churn rate:", rate)Step 3: Churn by category
Churn by segment
import seaborn as sns
import matplotlib.pyplot as plt
plt.figure(figsize=(7, 4))
sns.barplot(data=df, x="plan", y="churn")
plt.title("Churn rate by plan")
plt.tight_layout()
plt.show()Churn by segment
import seaborn as sns
import matplotlib.pyplot as plt
plt.figure(figsize=(7, 4))
sns.barplot(data=df, x="plan", y="churn")
plt.title("Churn rate by plan")
plt.tight_layout()
plt.show()Step 4: Numeric differences
Tenure by churn
import seaborn as sns
import matplotlib.pyplot as plt
plt.figure(figsize=(7, 4))
sns.boxplot(data=df, x="churn", y="tenure")
plt.title("Tenure vs churn")
plt.tight_layout()
plt.show()Tenure by churn
import seaborn as sns
import matplotlib.pyplot as plt
plt.figure(figsize=(7, 4))
sns.boxplot(data=df, x="churn", y="tenure")
plt.title("Tenure vs churn")
plt.tight_layout()
plt.show()Visualize it
Step 5: Create a simple model-ready dataset
- Handle missing values
- Encode categories
- Split train/test
This connects back to Phase 4 preprocessing.
Deliverable
Write insights:
- Which plan/segment churns more?
- Which features differ strongly?
- What interventions might reduce churn?
🧪 Try It Yourself
Exercise 1 – Overall churn rate
Exercise 2 – Churn rate by plan
Exercise 3 – Compare tenure between groups
If this helped you, consider buying me a coffee ☕
Buy me a coffeeWas this page helpful?
Let us know how we did
