0% found this document useful (0 votes)
5 views66 pages

Customer Churn Syntax

The document details a data analysis project using a churn dataset loaded with pandas. It includes data exploration techniques such as displaying the first few rows, summarizing data information, and visualizing distributions and correlations using matplotlib and seaborn. The dataset consists of 19 columns with various data types, including continuous and categorical variables.

Uploaded by

rammya06
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views66 pages

Customer Churn Syntax

The document details a data analysis project using a churn dataset loaded with pandas. It includes data exploration techniques such as displaying the first few rows, summarizing data information, and visualizing distributions and correlations using matplotlib and seaborn. The dataset consists of 19 columns with various data types, including continuous and categorical variables.

Uploaded by

rammya06
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 66

1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

In [24]: import pandas as pd

data = pd.read_csv("E:\churndata.csv")

print(data.head())
print(data.info())
print(data.describe(include='all'))

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 2/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

AccountID Churn Tenure City_Tier CC_Contacted_LY Payment Gend


er \
0 20000 1 4.0 3.0 6.0 Debit Card Fema
le
1 20001 1 0.0 1.0 8.0 UPI Ma
le
2 20002 1 0.0 1.0 30.0 Debit Card Ma
le
3 20003 1 0.0 3.0 15.0 Debit Card Ma
le
4 20004 1 0.0 1.0 12.0 Credit Card Ma
le

Service_Score Account_user_count account_segment CC_Agent_Score \


0 3.0 3.0 Super 2.0
1 3.0 4.0 Regular Plus 3.0
2 2.0 4.0 Regular Plus 3.0
3 2.0 4.0 Super 5.0
4 2.0 3.0 Regular Plus 5.0

Marital_Status rev_per_month Complain_ly rev_growth_yoy \


0 Single 9.0 1.0 11.0
1 Single 7.0 1.0 15.0
2 Single 6.0 1.0 14.0
3 Single 8.0 0.0 23.0
4 Single 3.0 0.0 11.0

coupon_used_For_payment Day_Since_CC_connect cashback Login_device


0 1.0 5.0 160.0 Mobile
1 0.0 0.0 121.0 Mobile
2 0.0 3.0 NaN Mobile
3 0.0 3.0 134.0 Mobile
4 1.0 3.0 130.0 Mobile
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 11260 entries, 0 to 11259
Data columns (total 19 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 AccountID 11260 non-null int64
1 Churn 11260 non-null int64
2 Tenure 11042 non-null float64
3 City_Tier 11148 non-null float64
4 CC_Contacted_LY 11158 non-null float64
5 Payment 11151 non-null object
6 Gender 11152 non-null object
7 Service_Score 11162 non-null float64
8 Account_user_count 10816 non-null float64
9 account_segment 11163 non-null object
10 CC_Agent_Score 11144 non-null float64
11 Marital_Status 11048 non-null object
12 rev_per_month 10469 non-null float64
13 Complain_ly 10903 non-null float64
14 rev_growth_yoy 11257 non-null float64
15 coupon_used_For_payment 11257 non-null float64
16 Day_Since_CC_connect 10902 non-null float64
17 cashback 10787 non-null float64
18 Login_device 10500 non-null object
dtypes: float64(12), int64(2), object(5)
memory usage: 1.6+ MB
None
AccountID Churn Tenure City_Tier \
localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 3/67
1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1
count 11260.00000 11260.000000 11042.000000 11148.000000
unique NaN NaN NaN NaN
top NaN NaN NaN NaN
freq NaN NaN NaN NaN
mean 25629.50000 0.168384 11.025086 1.653929
std 3250.62635 0.374223 12.879782 0.915015
min 20000.00000 0.000000 0.000000 1.000000
25% 22814.75000 0.000000 2.000000 1.000000
50% 25629.50000 0.000000 9.000000 1.000000
75% 28444.25000 0.000000 16.000000 3.000000
max 31259.00000 1.000000 99.000000 3.000000

CC_Contacted_LY Payment Gender Service_Score Account_user_co


unt \
count 11158.000000 11151 11152 11162.000000 10816.000
000
unique NaN 5 2 NaN
NaN
top NaN Debit Card Male NaN
NaN
freq NaN 4587 6704 NaN
NaN
mean 17.867091 NaN NaN 2.902526 3.692
862
std 8.853269 NaN NaN 0.725584 1.022
976
min 4.000000 NaN NaN 0.000000 1.000
000
25% 11.000000 NaN NaN 2.000000 3.000
000
50% 16.000000 NaN NaN 3.000000 4.000
000
75% 23.000000 NaN NaN 3.000000 4.000
000
max 132.000000 NaN NaN 5.000000 6.000
000

account_segment CC_Agent_Score Marital_Status rev_per_month \


count 11163 11144.000000 11048 10469.000000
unique 5 NaN 3 NaN
top Regular Plus NaN Married NaN
freq 4124 NaN 5860 NaN
mean NaN 3.066493 NaN 6.362594
std NaN 1.379772 NaN 11.909686
min NaN 1.000000 NaN 1.000000
25% NaN 2.000000 NaN 3.000000
50% NaN 3.000000 NaN 5.000000
75% NaN 4.000000 NaN 7.000000
max NaN 5.000000 NaN 140.000000

Complain_ly rev_growth_yoy coupon_used_For_payment \


count 10903.000000 11257.000000 11257.000000
unique NaN NaN NaN
top NaN NaN NaN
freq NaN NaN NaN
mean 0.285334 16.193391 1.790619
std 0.451594 3.757721 1.969551
min 0.000000 4.000000 0.000000
25% 0.000000 13.000000 1.000000
50% 0.000000 15.000000 1.000000
75% 1.000000 19.000000 2.000000

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 4/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1
max 1.000000 28.000000 16.000000

Day_Since_CC_connect cashback Login_device


count 10902.000000 10787.000000 10500
unique NaN NaN 2
top NaN NaN Mobile
freq NaN NaN 7482
mean 4.633187 196.235376 NaN
std 3.697637 178.656881 NaN
min 0.000000 0.000000 NaN
25% 2.000000 147.000000 NaN
50% 3.000000 165.000000 NaN
75% 8.000000 200.000000 NaN
max 47.000000 1997.000000 NaN

In [23]: continuous_columns = data.select_dtypes(include=['int64', 'float64']).colum


ns.tolist()
categorical_columns = data.select_dtypes(include=['object', 'category']).co
lumns.tolist()

print("Continuous Variables:", continuous_columns)


print("Categorical Variables:", categorical_columns)

Continuous Variables: ['AccountID', 'Churn', 'Tenure', 'City_Tier', 'CC_Co


ntacted_LY', 'Service_Score', 'Account_user_count', 'CC_Agent_Score', 'rev
_per_month', 'Complain_ly', 'rev_growth_yoy', 'coupon_used_For_payment',
'Day_Since_CC_connect', 'cashback']
Categorical Variables: ['Payment', 'Gender', 'account_segment', 'Marital_S
tatus', 'Login_device']

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 5/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

In [22]: for col in categorical_columns:


plt.figure(figsize=(8, 4))
sns.countplot(y=data[col], order=data[col].value_counts().index, palett
e='Set2')
plt.title(f'Category counts for {col}')
plt.show()

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 6/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 7/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 8/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

In [21]: for col in categorical_columns:


data[col].value_counts().plot.pie(autopct='%1.1f%%', figsize=(6, 6))
plt.title(f'Proportion of {col}')
plt.ylabel('')
plt.show()

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 9/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 10/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 11/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 12/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

In [20]: import pandas as pd


import matplotlib.pyplot as plt
import seaborn as sns

data = pd.read_csv("E:\churndata.csv")

continuous_columns = data.select_dtypes(include=['int64', 'float64']).colum


ns.tolist()

# Univariate analysis: Histograms and Boxplots


for col in continuous_columns:
plt.figure(figsize=(12, 5))

# Histogram with KDE


plt.subplot(1, 2, 1)
sns.histplot(data[col], kde=True, bins=30, color='skyblue')
plt.title(f'Distribution of {col}')

# Boxplot
plt.subplot(1, 2, 2)
sns.boxplot(x=data[col], color='lightgreen')
plt.title(f'Boxplot of {col}')

plt.tight_layout()
plt.show()

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 13/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 14/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 15/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 16/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 17/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

In [19]: # Correlation heatmap


plt.figure(figsize=(10, 8))
sns.heatmap(data[continuous_columns].corr(), annot=True, cmap='coolwarm', f
mt='.2f')
plt.title('Correlation Heatmap')
plt.show()

# Scatterplots for selected continuous variables


selected_pairs = [('Tenure', 'Service_Score'), ('rev_per_month', 'cashbac
k')] # Replace with your columns
for x, y in selected_pairs:
plt.figure(figsize=(8, 6))
sns.scatterplot(data=data, x=x, y=y, alpha=0.6)
plt.title(f'Scatterplot: {x} vs {y}')
plt.show()

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 18/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 19/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 20/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

In [18]: # Boxplots to compare continuous variables across categories


categorical_columns = data.select_dtypes(include=['object', 'category']).co
lumns.tolist()
for cat_col in categorical_columns:
for cont_col in continuous_columns:
plt.figure(figsize=(10, 6))
sns.boxplot(x=data[cat_col], y=data[cont_col], palette='Set3')
plt.title(f'{cont_col} by {cat_col}')
plt.xticks(rotation=45)
plt.show()

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 21/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 22/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 23/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 24/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 25/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 26/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 27/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 28/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 29/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 30/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 31/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 32/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 33/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 34/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 35/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 36/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 37/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 38/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 39/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 40/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 41/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 42/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 43/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 44/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 45/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 46/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 47/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 48/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 49/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 50/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 51/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 52/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 53/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 54/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 55/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 56/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

In [17]: # Cross-tabulation and heatmap


for cat1 in categorical_columns:
for cat2 in categorical_columns:
if cat1 != cat2: # Avoid self-comparison
crosstab = pd.crosstab(data[cat1], data[cat2])
plt.figure(figsize=(8, 6))
sns.heatmap(crosstab, annot=True, fmt='d', cmap='Blues')
plt.title(f'Crosstab: {cat1} vs {cat2}')
plt.show()

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 57/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 58/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 59/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 60/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 61/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 62/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 63/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 64/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 65/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 66/67


1/27/25, 9:09 PM CAPSTONE PROJECT-Copy1

In [ ]:

In [ ]:

localhost:8888/nbconvert/html/CAPSTONE PROJECT-Copy1.ipynb?download=false 67/67

You might also like