数据集来源:

Telco Customer Churn | KaggleFocused customer retention programshttps://www.kaggle.com/datasets/blastchar/telco-customer-churn下载得到一个excel文件WA_Fn-UseC_-Telco-Customer-Churn.csv,打开excel看一下

有21列,7000+行,这个数据量不大,用sql可以做

熟悉一下表格内容,看一下每列的数据类型,有没有明显异常的列,比如很多的0,或者有负数或者格子为空没有数据的情况。

(我粗粗拉了下表,没感到有明显异常的列)

这个案例用到的sql语句和tableau操作都是最基础的

首先是SQL部分,对数据进行一个简单的处理:

首先是建库建表:

#创建数据库
DROP DATABASE IF EXISTS Telco_Customer_Churn;
CREATE DATABASE Telco_Customer_Churn;
USE Telco_Customer_Churn;
#建表
DROP TABLE IF EXISTS customer_details;
CREATE TABLE customer_details(customerID VARCHAR(30) ,gender VARCHAR(30),SeniorCitizen VARCHAR(30) ,Partner VARCHAR(30) ,Dependents VARCHAR(30) ,tenure INT,PhoneService VARCHAR(30),MultipleLines VARCHAR(30),InternetService VARCHAR(50),OnlineSecurity VARCHAR(50),OnlineBackup VARCHAR(50),DeviceProtection VARCHAR(50),TechSupport VARCHAR(50),StreamingTV VARCHAR(50),StreamingMovies VARCHAR(50),Contract VARCHAR(50),PaperlessBilling VARCHAR(30),PaymentMethod VARCHAR(50),MonthlyCharges FLOAT,TotalCharges varchar(50),Churn VARCHAR(30));

在这里,大家可能会奇怪,我为什么把TotalCharges的数据类型定义为字符串类型?

是这样的,在最开始的时候我也是把TotalCharges的数据类型定义为Float类型的,但是在我导入数据的时候出现了‘warning’

‘Data truncated for column 'TotalCharges' at row XXX’

出现这种warning一般都是因为数据类型不适合或者是数据长度小了。

所以我试着把数据类型改成Varchar(50),然后warning就没有了。

但是这里的TotalCharges的数据类型肯定应该是浮点型,之后我们再通过sql语句改过来!

大家不要着急,慢慢往后看哈!

然后是导入数据:

LOAD DATA INFILE 'WA_Fn-UseC_-Telco-Customer-Churn.csv'
INTO TABLE customer_details
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
IGNORE 1 ROWS

这里有一个注意事项,我们的excel表,最好是放在Data下面,这样导入比较顺利。可以通过修改配置,使得可以导入其它文件夹的表,但是我就直接放在Data下面了。

就是这个Data文件夹:

点开这个Data文件夹可以看到新建的文件夹

你发现这个文件夹和我们前面建的数据库是一个名字,我想你应该想到了,我们在建库的时候就同时创建了这么一个文件夹,之后在该数据库下的操作也都默认是在这个文件夹下。

因此我们需要把下载的excel表WA_Fn-UseC_-Telco-Customer-Churn.csv移动到这个文件夹下面

这样就可以很顺利地通过load infile 语句把数据导入mysql啦!

展示下部分数据:

之后对数据进行检查,包括检查数据集大小、数据类型是否合理、有无空值、有无异常值

#查看数据集大小
SELECT COUNT(*) FROM customer_details;  #有7043行数据

#查看数据类型
DESCRIBE customer_details;

在之前我们说过啦,为了导入数据不出现Warning,我们把TotalCharges的数据类型定义为了varcharI(50),但是它的数据类型正确的应该是Float

(数据类型也关系着我们后面用Tableau绘图,比如如果是字符串类型,肯定就没办法画趋势线了!)

所以,我们需要修改数据类型

#修改TotalCharges的数据类型为float
ALTER TABLE customer_details MODIFY TotalCharges FLOAT;
#检查是否存在重复的数据
SELECT * FROM customer_details
GROUP BY customerID, gender, SeniorCitizen, Partner, Dependents, tenure, Phoneservice, Multiplelines, Internetservice, Onlinesecurity, Onlinebackup, Deviceprotection, Techsupport, Streamingtv, Streamingmovies,
Contract, Paperlessbilling, Paymentmethod, MonthlyCharges, TotalCharges, Churn
HAVING COUNT(*)>1;

运行的结果是

返回只有表头,没有数据,这就是说没有重复的数据。

(如果有重复的数据,需要先设置一个自增长列,然后去重,这个以后遇到了我会再写一篇)

#查找缺失值
SELECT  COUNT(customerID),COUNT(gender),COUNT(SeniorCitizen),COUNT(Partner),COUNT(Dependents),COUNT(tenure),COUNT(Phoneservice),COUNT(Multiplelines),COUNT(Internetservice),COUNT(Onlinesecurity),COUNT(Onlinebackup),COUNT(Deviceprotection),COUNT(Techsupport),COUNT(Streamingtv),COUNT(Streamingmovies),COUNT(Contract),COUNT(Paperlessbilling),COUNT(Paymentmethod),COUNT(MonthlyCharges),COUNT(TotalCharges),COUNT(Churn)
FROM customer_details;
#返回得到各列的数据都为7043个,说明没有缺失值

#查找异常值
#将TotalCharge(总消费额)按照升序排列
SELECT * FROM customer_details
ORDER BY TotalCharges ASC;
#发现有的行出现了,总消费额TotalCharge为0,但是月消费MonthlyCharge不为0的情况
#经过观察发现这些用户的入网时长tenure为0,推测为本月刚入网用户,因此其tenure修改为1,总消费额改为月消费额
UPDATE customer_details SET tenure = 1,TotalCharges = MonthlyCharges
WHERE tenure =0;

嗯,进行到这里,我们的数据就处理完了。这个文件的数据处理很简单,都是最基本的语句。

接下来就是对数据进行业务分析。

本数据集有21列,内容分别为

我们分析的主要方式,就是通过可视化,分析最后一列数据(Churn)与前面的20列数据的关系。

接下来就是把SQL和tableaul链接起来,利用tableau进行可视化展示。

这里用到的tableau很简单,直接把对应的数据拖到column和row里面就可以啦

电信运营商用户流失分析相关推荐

  1. excel数据分析案例——电信运营商用户流失分析

    原文:https://zhuanlan.zhihu.com/p/55686050 本文为原文基础上的练习作 数据来源:https://www.kaggle.com/blastchar/telco-cu ...

  2. 通信运营商用户流失分析与预测

    1.通信运营商现状与需求 随着业务的快速发展.移动业务市场的竞争愈演愈烈.如何最大程度地挽留在网用户.吸取新客户,是电信企业最关注的问题之一.竞争对手的促销.公司资费软着陆措施的出台和政策法规的不断变 ...

  3. 运营商线路细分_电信运营行业细分领域分析

    电信运营行业细分领域分析 第一节 eSMI 卡时代 一.发展现状 (一) eSIM 卡介绍 SIM 卡向着微型化发展,但始终需与运营商绑定. SIM ( Subscriber Identity Mod ...

  4. Flink_大数据技术之电商用户行为分析

    大数据技术之电商用户行为分析 第1章 项目整体介绍 1.1 电商的用户行为 电商平台中的用户行为频繁且较复杂,系统上线运行一段时间后,可以收集到大量的用户行为数据,进而利用大数据技术进行深入挖掘和分析 ...

  5. Spark项目实战—电商用户行为分析

    文章目录 一.[SparkCore篇]项目实战-电商用户行为分析 前言:数据准备 1.数据规则如下: 2.详细字段说明: 3.样例类 (一)需求1:TOP10热门品类 1.需求说明 2.代码实现方案1 ...

  6. 电商用户行为分析大数据平台相关系列1-环境介绍

    最近在自学Spark,看了一些书籍和视频,总是感觉无从下手.拿着一个想法总是无从下手.追其原因,主要是没有系统的学习和使用.对于IT,一切新技术都需要不断实践.不断动手.本着动手的原则,本人通过各种渠 ...

  7. 亚马逊入驻商用户画像分析

    什么是入驻商用户画像体系 像淘宝,京东,天猫,亚马逊,拼多多的叫平台方,在平台里面的阿迪达斯,耐克,鸿星尔克,卡尔米等叫入驻商. 用户的基本属性:性别.年龄.受教育程度.地域分布等, 用户的行为属性: ...

  8. 【数据分析】电商平台入驻商用户画像分析

    电商平台入驻商数据分析思路 1.1 互联网电商平台入驻商数据分析的一般思路 获得数据 :前台数据(价格.销量.关键词,需要通过爬虫获得)+后台数据(广告数据.订单数据.平台提供的接口,入驻商自用统计软 ...

  9. 某电商用户行为分析-提升GMV

    目录 1. 明确项目背景和需求 项目目的: 分析思路: 2 数据探索(EDA) 2.1 数据集信息 2.2数据预览 2.2.1 new_user 2.2.2 age 2.2.3 sex 2.2.4 m ...

最新文章

  1. input type=hidden /在IE中占空间(转)
  2. UNIX编程笔记:关于停止的进程接收信号的问题
  3. 数论分块 ---- 2020牛客多校第7场H-Dividing[思维+数论分块]
  4. BZOJ1086 [SCOI2005]王室联邦 【dfs + 贪心】
  5. leetcode算法题--最接近的三数之和
  6. Windows下怎样设置jar包开机自启动运行
  7. Elasticsearch学习之快速入门案例
  8. docker run后台启动命令_Docker-第五部分:15个 Docker 命令
  9. 每天一杯C_Visual Studio各个版本的区别和总结
  10. 计算机视觉CV中特征点方法相关函数的学习笔记~
  11. Altium AD20导出为PDF、导出BOM表
  12. 用python把相同名称的放在一起,python实现将具有相同名称的文件放入相应的文件夹中,把,对应,内...
  13. mysql实例 oracle实例 区别_ORACLE实例与数据库的区别
  14. 数据库日志文件(databasename_log.ldf)太大 如何清除
  15. linux下各种后缀名文件的压缩和解压缩
  16. 国资入局,苏宁“零售服务商”升级战略获得最强助力
  17. Mac IntelliJ IDEA 2017.3.2破解方法
  18. python快速处理excel表格-python 处理 Excel 表格
  19. 整除分块 B - Make Divisible
  20. 执行 taro init myApp 报错 无法加载文件 C:\Users\Administrator\AppData\Roaming\npm\taro.ps1

热门文章

  1. android+图标+边界呼吸,手机图标还能长这样?OriginOS真是别出心裁
  2. 关于梦行monxin网络商城如何查询开店邀请码的方法
  3. linux小火车指令,Linux 好玩的小命令–linux小火车
  4. (给自己看)51单片机DS1302时钟芯片
  5. win10 1909版本安装不上RX560 570显卡驱动的解决办法。
  6. 什么是冗余字段?如何优化表结构?
  7. Log4j2日志框架
  8. JavaScript从入门到高手必杀教程
  9. 字幕自动匹配小工具下载
  10. 点位拍照打卡完成任务小程序JavaScript 严格模式(use strict)