首页 > 其他分享 >4.4-用户维度

4.4-用户维度

时间:2023-10-23 14:55:37浏览次数:28  
标签:4.4 No 用户 len 维度 Yes churn data Out

 

 

 

  In [ ]:
import pandas as pd
  In [ ]:
data = pd.read_csv("WA_Fn-UseC_-Telco-Customer-Churn.csv")
data.columns = ['用户ID', '性别', '是否老人', '是否有伴侣', '是否有孩子',
       '合同期限', '通话服务', '多线程', '网络服务',
       '在线安全', '在线备份', '设备安全', '技术支持',
       '流媒体电视', '流媒体电影', '合同类型', '电子账单',
       '支付方式', '月消费', '总消费', '是否流失']
data.head()
  Out[ ]:
  用户ID 性别 是否老人 是否有伴侣 是否有孩子 合同期限 通话服务 多线程 网络服务 在线安全 ... 设备安全 技术支持 流媒体电视 流媒体电影 合同类型 电子账单 支付方式 月消费 总消费 是否流失
0 7590-VHVEG Female 0 Yes No 1 No No phone service DSL No ... No No No No Month-to-month Yes Electronic check 29.85 29.85 No
1 5575-GNVDE Male 0 No No 34 Yes No DSL Yes ... Yes No No No One year No Mailed check 56.95 1889.5 No
2 3668-QPYBK Male 0 No No 2 Yes No DSL Yes ... No No No No Month-to-month Yes Mailed check 53.85 108.15 Yes
3 7795-CFOCW Male 0 No No 45 No No phone service DSL Yes ... Yes Yes No No One year No Bank transfer (automatic) 42.30 1840.75 No
4 9237-HQITU Female 0 No No 2 Yes No Fiber optic No ... No No No No Month-to-month Yes Electronic check 70.70 151.65 Yes

5 rows × 21 columns

  In [ ]:
# 4.4.1 整体流失情况:人数、比例、流失率
  In [ ]:
data['是否流失'].drop_duplicates()
  Out[ ]:
0     No
2    Yes
Name: 是否流失, dtype: object
  In [ ]:
# 流失人数、非流失人数
churn1 = data[data['是否流失']=='Yes']['是否流失'].count()
churn0 = data[data['是否流失']=='No']['是否流失'].count()
churn0,churn1
  Out[ ]:
(5174, 1869)
  In [ ]:
# 流失率 = 流失人数 / 总人数
churn_per = churn1 / len(data)
churn_per
  Out[ ]:
0.2653698707936959
  In [ ]:
# 4.4.2 性别:人数、比例、流失率
data['性别'].drop_duplicates()
  Out[ ]:
0    Female
1      Male
Name: 性别, dtype: object
  In [ ]:
gender0 = data[data['性别']=='Female']['性别'].count()
gender1 = data[data['性别']=='Male']['性别'].count()
gender0,gender1
  Out[ ]:
(3488, 3555)
  In [ ]:
gender0 / len(data)   # 女性占人数总量
  Out[ ]:
0.495243504188556
  In [ ]:
# 女性流失率:女性流失人数/女性总人数
## 创建一个churn=yes的子数据集
df_churn = data[data['是否流失']=='Yes']
## 计算女性流失率
gender0_churn = df_churn[df_churn['性别']=='Female']['性别'].count()
gender0_churn_per = gender0_churn / gender0
gender0_churn_per
  Out[ ]:
0.26920871559633025
  In [ ]:
# 男性流失率:男性流失人数/男性总人数
## 计算男性流失率
gender0_churn = df_churn[df_churn['性别']=='Male']['性别'].count()
gender0_churn_per = gender0_churn / gender1
gender0_churn_per
  Out[ ]:
0.2616033755274262
  In [ ]:
# 4.4.3 老人:人数、比例、流失率
data['是否老人'].drop_duplicates()
  Out[ ]:
0     0
20    1
Name: 是否老人, dtype: int64
  In [ ]:
senior0 = len(data[data['是否老人']==0])
senior1 = len(data[data['是否老人']==1])
senior0,senior1
  Out[ ]:
(5901, 1142)
  In [ ]:
senior1 / len(data) # 老年人比例
  Out[ ]:
0.1621468124378816
  In [ ]:
# 计算对应的流失率:对应流失人数/对应总人数
s0_churn = len(df_churn[df_churn['是否老人']==0])
s1_churn = len(df_churn[df_churn['是否老人']==1])
s0_churn_per = s0_churn / senior0
s1_churn_per = s1_churn / senior1
s0_churn_per, s1_churn_per
  Out[ ]:
(0.23606168446026096, 0.4168126094570928)
  In [ ]:
# 4.4.4 伴侣:人数、比例、流失率
data['是否有伴侣'].drop_duplicates()
  Out[ ]:
0    Yes
1     No
Name: 是否有伴侣, dtype: object
  In [ ]:
partner0 = len(data[data['是否有伴侣']=='No'])
partner1 = len(data[data['是否有伴侣']=='Yes'])
partner0,partner1
  Out[ ]:
(3641, 3402)
  In [ ]:
partner0 / len(data)   # 没有伴侣的人的比例
  Out[ ]:
0.5169672014766434
  In [ ]:
partner1 / len(data)   # 有伴侣的人的比例
  Out[ ]:
0.4830327985233565
  In [ ]:
# 计算对应的流失率:对应流失人数/对应总人数
partner0_churn = len(df_churn[df_churn['是否有伴侣']=='No'])
partner1_churn = len(df_churn[df_churn['是否有伴侣']=='Yes'])
partner0_churn_per = partner0_churn / partner0
partner1_churn_per = partner1_churn / partner1
partner0_churn_per, partner1_churn_per
  Out[ ]:
(0.32957978577313923, 0.1966490299823633)
  In [ ]:
# 4.4.5 亲属:人数、比例、流失率
data['是否有孩子'].drop_duplicates()
  Out[ ]:
0     No
6    Yes
Name: 是否有孩子, dtype: object
  In [ ]:
dependents0 = len(data[data['是否有孩子']=='No'])
dependents1 = len(data[data['是否有孩子']=='Yes'])
dependents0,dependents1
  Out[ ]:
(4933, 2110)
  In [ ]:
# 是否有孩子的比例
dependents0 / len(data),dependents1 / len(data)
  Out[ ]:
(0.7004117563538265, 0.2995882436461735)
  In [ ]:
# 计算对应的流失率:对应流失人数/对应总人数
dependents0_churn = len(df_churn[df_churn['是否有孩子']=='No'])
dependents1_churn = len(df_churn[df_churn['是否有孩子']=='Yes'])
dependents0_churn_per = dependents0_churn / dependents0
dependents1_churn_per = dependents1_churn / dependents1
dependents0_churn_per, dependents1_churn_per
  Out[ ]:
(0.3127914048246503, 0.15450236966824646)
  In [ ]:
# 4.4.6 数据洞察:现象、朔源、建议
# 高流失率用户特征:
# 1.性别无特殊性
# 2.老年人相对于年轻人更容易流失
# 3.单身用户更倾向于流失
# 4.无孩子相对于有孩子更容易流失

标签:4.4,No,用户,len,维度,Yes,churn,data,Out
From: https://www.cnblogs.com/mlzxdzl/p/17782422.html

相关文章

  • Linux/Centos文件授权用户文件夹权限介绍
    一、Linux文件权限介绍在Linux中,一切皆为文件(目录也是文件),每个文件对用户具有可读(read)、可写(write)、可执行(excute)权限。目录的执行操作表示是否有权限进入该目录并操作执行该目录,文件都会从属于一个用户和一个用户组,每个文件针对文件的拥有者、所属组以及其他用户组具有特定权限......
  • Oracle数据库表空间和角色/用户 权限
    问题1.2.3.https://www.iteye.com/blog/czmmiao-1304934这个特别好4.5.6.https://www.51cto.com/article/158937.html表空间7.创建用户8.表空间9.oracle体系结构详解10.https://zhuanlan.zhihu.com/p/100390025实例、表空间、用户之间的关系11.https://docs.oracle......
  • 使用mimipenguin实现从当前 Linux 用户转储登录密码
    另外,它还支持如:VSFTPd(活跃的FTP客户端连接)、Apache2(活跃的/旧的HTTP基础认证会话,但是这需要Gcore),还有openssh-server(活跃的SSH链接,需用sudo 命令)。重要的是,它逐渐被移植到其他语言中,以支持所有可想到的以后可以利用的情况。mimipenguin是如何工作的?要理解mimipengui......
  • 向量维度
    计算机科学的观点是向量是数字的有序列表向量维度是指一个向量中包含的元素数量,也可以称为向量的长度。在数学和线性代数中,向量通常表示为一列数字,这些数字按照顺序排列。向量的维度可以是任意整数值,包括零(零向量),正整数(一维、二维、三维等),甚至更高维度。例如,以下是不同维度的向......
  • 解决Linux非root用户读写串口权限问题
    查看串口和基本设置查看串口:ls/dev/ttyUSB*查看参数:stty-F/dev/ttyUSB0设置波特率:stty-F/dev/ttyUSB0speed9600收发数据先打开后台接收:cat/dev/ttyUSB0&发送:echohello>/dev/ttyUSB0可以使用printf做更精确的控制:printf'hello\r'>/dev/ttyUSB0解决"P......
  • Win11配置两个git用户
    背景有两个github账号,一个主要负责公开的内容,一个私人的,需要在同一台电脑上满足代码提交且互不干扰。核心操作分为三步:配置ssh的config文件切换用户关闭全局用户名称(可选)测试环境Win:11OpenSSH:8.6Git:2.39.1.windows.11.配置.ssh文件夹下config文件生成key......
  • python-用函数让用户决定要几乘几乘法表
    #n*n乘法表用函数defrenyi_chengfabiao():forainrange(1,x+1):forbinrange(1,x+1):c=a*bifb<=a:print(int(b),"*",int(a),"=",int(c),end="")print()whileTrue......
  • 获取用户信息
    <buttonopen-type="getUserInfo"bindgetuserinfo="getuserinfo">获取用户信息</button>//pages/login/login.jsPage({data:{},onLoad(options){},getuserinfo(e){console.log(e)letuserInfo=e.detail.userInf......
  • 401 Kubernetes网络 (Pod Service Calico Flannel) 4.1-4.4
    一、Pod网络在K8S集群里,多个节点上的Pod相互通信,要通过网络插件完成,比如Calico网络插件。使用kubeadm初始化K8S集群时,需要指定一个参数--pod--network-cidr=10.18.0.0/16它用来定义Pod的网段。配置Calico的时候,也要定义CALICO_IPV4POOL_CIDR的参数,它的值也是Pod的网络。容器网......
  • 管理用户和组
    一:了解用户和用户组的1:用户的作用一个用户登录了linux,就会有相对应的文件,属于这个用户的资源,文件和目录以及进程都属于这个用户,要使用linux就必须使用账号来登录,使用这些资源,每个用户都有不同的权限,在这个权限内完成相对应的任务2:用户组的分类超级用户(root)uid为0,也称为管理用......