电信客户流失分析

在本次分析中,将深入探讨电信行业的客户流失问题。通过完整的探索性数据分析(EDA)过程,将识别影响客户流失的关键因素,并从数据可视化和分析中提取有价值的见解。

数据集信息

使用的是Kaggle上的一个样本数据集。样本数据集是从总体数据集中随机抽取的,包含了已经离开电信公司的客户信息。

导入所需库

import numpy as np import pandas as pd import seaborn as sns import matplotlib.ticker as mtick import matplotlib.pyplot as plt %matplotlib inline

加载数据文件

telecom = pd.read_csv('WA_Fn-UseC_-Telco-Customer-Churn.csv')

使用head函数查看数据集的前几条记录,可以得知数据集的形状,即记录数和列数。例如,数据集可能有1200行和13列。

查看数据集列

telecom.columns.values

输出的列名包括客户ID、性别、是否为老年人、是否有伴侣、是否有受抚养人等,共计21个字段。

数据集类型检查

telecom.dtypes

通过检查数据集的类型,可以了解数据集中包含的数据类型,例如数值型、分类型等。

数据统计

telecom.describe()

描述性统计提供了数据集的均值、标准差等统计信息。例如,发现老年人客户的比例、平均月费用等信息。

目标变量值计数

telecom['Churn'].value_counts().plot(kind='barh', figsize=(8, 6))

通过绘制条形图,可以直观地看到目标变量“Churn”(流失)的类别分布。

数据集信息详细查看

telecom.info(verbose = True)

这将返回数据集的详细信息,包括每列的非空值数量、数据类型等。

缺失值处理

在数据清洗阶段,首先复制电信数据以进行进一步处理。然后,将“TotalCharges”列转换为数值类型,并处理缺失值。

telco_data = telecom.copy() telco_data.TotalCharges = pd.to_numeric(telco_data.TotalCharges, errors='coerce')

由于“TotalCharges”列中存在大量缺失值,可以选择删除这些缺失值,或者用其他方法填充。

数据探索

在数据探索阶段,对数据集进行单变量分析,绘制每个预测变量的计数图,并根据“Churn”进行着色。

for i, predictor in enumerate(telco_data.drop(columns=['Churn', 'TotalCharges', 'MonthlyCharges'])): plt.figure(i) sns.countplot(data=telco_data, x=predictor, hue='Churn')
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485