Kaggle数据集之电信客户流失数据分析(二)

上篇:Kaggle数据集之电信客户流失数据分析(一)
采用整体流失率作为标准,用于后面分析各维度的流失率做对比。

人口统计指标:‘gender’,‘SeniorCitizen’,‘Partner’,'Dependents’

fig,axes=plt.subplots(2,2,figsize=(15,15)) #画多子图,函数返回一个figure图像和子图axes的array列表
for i,j in enumerate(['gender','SeniorCitizen','Partner','Dependents']): #enumerate将数据对象组合为索引序列
    plt.subplot(2,2,i+1) #i从0开始,子图的第i+1个图
    ax=sns.countplot(x=j,hue='Churn',data=df,palette="Set2",order=df_Churn.groupby(j)['Churn'].value_counts().index.levels[0])
    plt.title(str(j),fontsize=20)
    plt.xlabel('Churn',fontsize=15)
    plt.xticks(fontsize=15)
    plt.legend(fontsize=15)
    lent=df_Churn.groupby(j)['Churn'].value_counts().shape[0]
    for p in range(lent):
        Rate=df_Churn.groupby(j)['Churn'].value_counts()[p]/df.groupby(j,as_index=False)['Churn'].size()[p]
        plt.text(p,100,'流失率{:.2%}'.format(Rate),fontsize=12)
    i+=1

在这里插入图片描述

enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。

举例子理解groupby

例1

import pandas as pd

df1 = pd.DataFrame(data={
   'books':['bk1','bk1','bk1','bk2','bk2','bk3'], 'price': [12,12,12,15,15,17],'num':[2,1,1,4,2,2]})
print(df1)
print(df1.groupby('books',as_index=True).sum())
print(df1.groupby('books',as_index=False).sum())
print(df1.groupby('books',as_index=False)['num'].size()) #统计
print(df1.groupby('books',as_index=False)['price'].size())
  books  price  num
0   bk1     12    2
1   bk1     12    1
2   bk1     12    1
3   bk2     15    4
4   bk2     15    2
5   bk3     17    2
       price  num
books            
bk1       36    4
bk2       30    6
bk3       17    2
  books  price  num
0   bk1     36    4
1   bk2     30    6
2   bk3     17    2
books
bk1    3
bk2    2
bk3    1
dtype: int64
books
bk1    3
bk2    2
bk3    1
dtype: int64

例2

df2 = pd.DataFrame({
   'A': ['a', 'b', 'a', 'c', 'a', 'c', 'b', 'c'], 
                    'B': [2, 8, 1, 4, 3, 2, 5, 9], 
                    'C': [102, 98, 107, 104, 
  • 3
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值