In [69]:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

import seaborn as sns

%matplotlib inline

pd.set_option("display.max_columns",None)

from pandas_profiling import ProfileReport
In [14]:
train = pd.read_csv("train_dataset.csv")
In [16]:
train.head()
Out[16]:
用户编码 用户实名制是否通过核实 用户年龄 是否大学生客户 是否黑名单客户 是否4G不健康客户 用户网龄(月) 用户最近一次缴费距今时长(月) 缴费用户最近一次缴费金额(元) 用户近6个月平均消费值(元) 用户账单当月总费用(元) 用户当月账户余额(元) 缴费用户当前是否欠费缴费 用户话费敏感度 当月通话交往圈人数 是否经常逛商场的人 近三个月月均商场出现次数 当月是否逛过福州仓山万达 当月是否到过福州山姆会员店 当月是否看电影 当月是否景点游览 当月是否体育场馆消费 当月网购类应用使用次数 当月物流快递类应用使用次数 当月金融理财类应用使用总次数 当月视频播放类应用使用次数 当月飞机类应用使用次数 当月火车类应用使用次数 当月旅游资讯类应用使用次数 信用分
0 a4651f98c82948b186bdcdc8108381b4 1 44 0 0 0 186 1 99.80 163.86 159.20 180 0 3 83 1 75 0 0 0 1 1 713 0 2740 7145 0 0 30 664
1 aeb10247db4e4d67b2550bbc42ff9827 1 18 0 0 1 5 1 29.94 153.28 145.10 110 0 3 21 1 16 0 0 0 0 0 414 0 2731 44862 0 0 0 530
2 5af23a1e0e77410abb25e9a7eee510aa 1 47 0 0 0 145 1 49.90 109.64 120.20 70 0 1 59 0 1 0 0 0 0 0 3391 0 0 4804 0 0 1 643
3 43c64379d3c24a15b8478851b22049e4 1 55 0 0 0 234 1 99.80 92.97 167.42 90 0 3 78 1 26 0 0 0 1 1 500 0 1931 3141 0 0 5 649
4 f1687f3b8a6f4910bd0b13eb634056e2 1 40 0 0 0 76 1 49.90 95.47 101.00 80 0 3 70 1 44 0 0 0 1 0 522 0 64 59 0 0 0 648
In [18]:
train.shape
Out[18]:
(50000, 30)
In [20]:
train.isnull().sum()
Out[20]:
用户编码               0
用户实名制是否通过核实        0
用户年龄               0
是否大学生客户            0
是否黑名单客户            0
是否4G不健康客户          0
用户网龄(月)            0
用户最近一次缴费距今时长(月)    0
缴费用户最近一次缴费金额(元)    0
用户近6个月平均消费值(元)     0
用户账单当月总费用(元)       0
用户当月账户余额(元)        0
缴费用户当前是否欠费缴费       0
用户话费敏感度            0
当月通话交往圈人数          0
是否经常逛商场的人          0
近三个月月均商场出现次数       0
当月是否逛过福州仓山万达       0
当月是否到过福州山姆会员店      0
当月是否看电影            0
当月是否景点游览           0
当月是否体育场馆消费         0
当月网购类应用使用次数        0
当月物流快递类应用使用次数      0
当月金融理财类应用使用总次数     0
当月视频播放类应用使用次数      0
当月飞机类应用使用次数        0
当月火车类应用使用次数        0
当月旅游资讯类应用使用次数      0
信用分                0
dtype: int64
In [22]:
train.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 50000 entries, 0 to 49999
Data columns (total 30 columns):
 #   Column           Non-Null Count  Dtype  
---  ------           --------------  -----  
 0   用户编码             50000 non-null  object 
 1   用户实名制是否通过核实      50000 non-null  int64  
 2   用户年龄             50000 non-null  int64  
 3   是否大学生客户          50000 non-null  int64  
 4   是否黑名单客户          50000 non-null  int64  
 5   是否4G不健康客户        50000 non-null  int64  
 6   用户网龄(月)          50000 non-null  int64  
 7   用户最近一次缴费距今时长(月)  50000 non-null  int64  
 8   缴费用户最近一次缴费金额(元)  50000 non-null  float64
 9   用户近6个月平均消费值(元)   50000 non-null  float64
 10  用户账单当月总费用(元)     50000 non-null  float64
 11  用户当月账户余额(元)      50000 non-null  int64  
 12  缴费用户当前是否欠费缴费     50000 non-null  int64  
 13  用户话费敏感度          50000 non-null  int64  
 14  当月通话交往圈人数        50000 non-null  int64  
 15  是否经常逛商场的人        50000 non-null  int64  
 16  近三个月月均商场出现次数     50000 non-null  int64  
 17  当月是否逛过福州仓山万达     50000 non-null  int64  
 18  当月是否到过福州山姆会员店    50000 non-null  int64  
 19  当月是否看电影          50000 non-null  int64  
 20  当月是否景点游览         50000 non-null  int64  
 21  当月是否体育场馆消费       50000 non-null  int64  
 22  当月网购类应用使用次数      50000 non-null  int64  
 23  当月物流快递类应用使用次数    50000 non-null  int64  
 24  当月金融理财类应用使用总次数   50000 non-null  int64  
 25  当月视频播放类应用使用次数    50000 non-null  int64  
 26  当月飞机类应用使用次数      50000 non-null  int64  
 27  当月火车类应用使用次数      50000 non-null  int64  
 28  当月旅游资讯类应用使用次数    50000 non-null  int64  
 29  信用分              50000 non-null  int64  
dtypes: float64(3), int64(26), object(1)
memory usage: 11.4+ MB
In [24]:
train.head()
Out[24]:
用户编码 用户实名制是否通过核实 用户年龄 是否大学生客户 是否黑名单客户 是否4G不健康客户 用户网龄(月) 用户最近一次缴费距今时长(月) 缴费用户最近一次缴费金额(元) 用户近6个月平均消费值(元) 用户账单当月总费用(元) 用户当月账户余额(元) 缴费用户当前是否欠费缴费 用户话费敏感度 当月通话交往圈人数 是否经常逛商场的人 近三个月月均商场出现次数 当月是否逛过福州仓山万达 当月是否到过福州山姆会员店 当月是否看电影 当月是否景点游览 当月是否体育场馆消费 当月网购类应用使用次数 当月物流快递类应用使用次数 当月金融理财类应用使用总次数 当月视频播放类应用使用次数 当月飞机类应用使用次数 当月火车类应用使用次数 当月旅游资讯类应用使用次数 信用分
0 a4651f98c82948b186bdcdc8108381b4 1 44 0 0 0 186 1 99.80 163.86 159.20 180 0 3 83 1 75 0 0 0 1 1 713 0 2740 7145 0 0 30 664
1 aeb10247db4e4d67b2550bbc42ff9827 1 18 0 0 1 5 1 29.94 153.28 145.10 110 0 3 21 1 16 0 0 0 0 0 414 0 2731 44862 0 0 0 530
2 5af23a1e0e77410abb25e9a7eee510aa 1 47 0 0 0 145 1 49.90 109.64 120.20 70 0 1 59 0 1 0 0 0 0 0 3391 0 0 4804 0 0 1 643
3 43c64379d3c24a15b8478851b22049e4 1 55 0 0 0 234 1 99.80 92.97 167.42 90 0 3 78 1 26 0 0 0 1 1 500 0 1931 3141 0 0 5 649
4 f1687f3b8a6f4910bd0b13eb634056e2 1 40 0 0 0 76 1 49.90 95.47 101.00 80 0 3 70 1 44 0 0 0 1 0 522 0 64 59 0 0 0 648
In [26]:
train['用户实名制是否通过核实'].value_counts()
Out[26]:
1    49511
0      489
Name: 用户实名制是否通过核实, dtype: int64
In [36]:
plt.figure(figsize=(25,10))
sns.countplot(x = train['用户年龄'])
Out[36]:
<AxesSubplot:xlabel='用户年龄', ylabel='count'>
No description has been provided for this image
In [38]:
train['是否大学生客户'].value_counts()
Out[38]:
0    49814
1      186
Name: 是否大学生客户, dtype: int64
In [40]:
train['是否黑名单客户'].value_counts()
Out[40]:
0    47560
1     2440
Name: 是否黑名单客户, dtype: int64
In [42]:
train['是否4G不健康客户'].value_counts()
Out[42]:
0    45571
1     4429
Name: 是否4G不健康客户, dtype: int64
In [48]:
train['用户网龄(月)'].value_counts()
Out[48]:
5      610
7      586
6      555
8      537
10     474
      ... 
3        2
287      2
281      1
280      1
284      1
Name: 用户网龄(月), Length: 283, dtype: int64
In [52]:
plt.figure(figsize=(25,10))
sns.kdeplot(x = train['用户网龄(月)'])
Out[52]:
<AxesSubplot:xlabel='用户网龄(月)', ylabel='Density'>
No description has been provided for this image
In [54]:
train.head()
Out[54]:
用户编码 用户实名制是否通过核实 用户年龄 是否大学生客户 是否黑名单客户 是否4G不健康客户 用户网龄(月) 用户最近一次缴费距今时长(月) 缴费用户最近一次缴费金额(元) 用户近6个月平均消费值(元) 用户账单当月总费用(元) 用户当月账户余额(元) 缴费用户当前是否欠费缴费 用户话费敏感度 当月通话交往圈人数 是否经常逛商场的人 近三个月月均商场出现次数 当月是否逛过福州仓山万达 当月是否到过福州山姆会员店 当月是否看电影 当月是否景点游览 当月是否体育场馆消费 当月网购类应用使用次数 当月物流快递类应用使用次数 当月金融理财类应用使用总次数 当月视频播放类应用使用次数 当月飞机类应用使用次数 当月火车类应用使用次数 当月旅游资讯类应用使用次数 信用分
0 a4651f98c82948b186bdcdc8108381b4 1 44 0 0 0 186 1 99.80 163.86 159.20 180 0 3 83 1 75 0 0 0 1 1 713 0 2740 7145 0 0 30 664
1 aeb10247db4e4d67b2550bbc42ff9827 1 18 0 0 1 5 1 29.94 153.28 145.10 110 0 3 21 1 16 0 0 0 0 0 414 0 2731 44862 0 0 0 530
2 5af23a1e0e77410abb25e9a7eee510aa 1 47 0 0 0 145 1 49.90 109.64 120.20 70 0 1 59 0 1 0 0 0 0 0 3391 0 0 4804 0 0 1 643
3 43c64379d3c24a15b8478851b22049e4 1 55 0 0 0 234 1 99.80 92.97 167.42 90 0 3 78 1 26 0 0 0 1 1 500 0 1931 3141 0 0 5 649
4 f1687f3b8a6f4910bd0b13eb634056e2 1 40 0 0 0 76 1 49.90 95.47 101.00 80 0 3 70 1 44 0 0 0 1 0 522 0 64 59 0 0 0 648
In [ ]:
 
In [62]:
train['用户最近一次缴费距今时长(月)'].value_counts()
Out[62]:
1    35005
0    14995
Name: 用户最近一次缴费距今时长(月), dtype: int64
In [65]:
plt.figure(figsize=(25,10))
sns.kdeplot(x = train['缴费用户最近一次缴费金额(元)'])
Out[65]:
<AxesSubplot:xlabel='缴费用户最近一次缴费金额(元)', ylabel='Density'>
No description has been provided for this image
In [67]:
train['缴费用户最近一次缴费金额(元)'].value_counts()
Out[67]:
0.00      14755
99.80     11167
49.90     10506
29.94      5902
199.60     2547
          ...  
5.37          1
230.00        1
106.65        1
52.00         1
108.00        1
Name: 缴费用户最近一次缴费金额(元), Length: 326, dtype: int64
In [73]:
# profile = ProfileReport(train)
# profile.to_notebook_iframe()
In [ ]: