#
描述性统计分析基础
数据集描述与属性说明
ID 客户编号
Suc_flag 成功入网标识
ARPU 入网后ARPU
PromCnt12 12个月内的营销次数
PromCnt36 36个月内的营销次数
PromCntMsg12 12个月内发短信的次数
PromCntMsg36 36个月内发短信的次数
Class 客户重要性等级(根据前运营商消费情况)
Age 年龄
Gender 性别
HomeOwner 是否拥有住房
AvgARPU 当地平均ARPU
AvgHomeValue 当地房屋均价
AvgIncome 当地人均收入
1 | import os |
读取数据
1 | camp= pd.read_csv('teleco_camp.csv') |
数据预处理
1 | camp.dtypes |
1 | ID int64 |
camp.describe(include=’all’)
ID | Suc_flag | ARPU | PromCnt12 | PromCnt36 | PromCntMsg12 | PromCntMsg36 | Class | Age | Gender | HomeOwner | AvgARPU | AvgHomeValue | AvgIncome | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
count | 9686.000000 | 9686.0 | 4843.000000 | 9686.000000 | 9686.000000 | 9686.000000 | 9686.000000 | 9686.0 | 7279.000000 | 9686 | 9686 | 9686.000000 | 9583.000000 | 7329.000000 |
unique | NaN | 2.0 | NaN | NaN | NaN | NaN | NaN | 4.0 | NaN | 3 | 2 | NaN | NaN | NaN |
top | NaN | 1.0 | NaN | NaN | NaN | NaN | NaN | 2.0 | NaN | F | H | NaN | NaN | NaN |
freq | NaN | 4843.0 | NaN | NaN | NaN | NaN | NaN | 3303.0 | NaN | 5223 | 5377 | NaN | NaN | NaN |
mean | 97975.474086 | NaN | 78.121722 | 3.447212 | 7.337059 | 1.178402 | 2.390935 | NaN | 59.150845 | NaN | NaN | 52.905156 | 112179.202755 | 53513.457361 |
std | 56550.171120 | NaN | 62.225686 | 1.231890 | 1.952436 | 0.287226 | 0.914314 | NaN | 16.516400 | NaN | NaN | 4.993775 | 98522.888583 | 19805.168339 |
min | 12.000000 | NaN | 5.000000 | 0.750000 | 1.000000 | 0.200000 | 0.400000 | NaN | 0.000000 | NaN | NaN | 46.138968 | 7500.000000 | 2499.000000 |
25% | 48835.500000 | NaN | 50.000000 | 2.900000 | 6.250000 | 1.000000 | 1.400000 | NaN | 47.000000 | NaN | NaN | 49.760116 | 53200.000000 | 40389.000000 |
50% | 99106.000000 | NaN | 65.000000 | 3.250000 | 7.750000 | 1.200000 | 2.600000 | NaN | 60.000000 | NaN | NaN | 50.876672 | 77700.000000 | 48699.000000 |
75% | 148538.750000 | NaN | 100.000000 | 3.650000 | 8.250000 | 1.400000 | 3.200000 | NaN | 73.000000 | NaN | NaN | 54.452822 | 129350.000000 | 62385.000000 |
max | 191779.000000 | NaN | 1000.000000 | 15.150000 | 19.500000 | 3.600000 | 5.600000 | NaN | 87.000000 | NaN | NaN | 99.444787 | 600000.000000 | 200001.000000 |
描述性统计与探索型数据分析
分类变量分析
可以查看列原因元素的种类
1 | camp['Suc_flag'].groupby(camp['Suc_flag']).count() |
1 | Suc_flag |
连续变量分析
数据的集中趋势
ARPU的均值与中位数
1 |
|
1 | mad = 38.1896 |
1 | get_ipython().run_line_magic('matplotlib', 'inline') |
1 | (array([2.510e+03, 1.978e+03, 2.160e+02, 9.800e+01, 4.000e+00, 7.000e+00, |
数据的离散程度
1 | print ('mad = %6.4f' %fs.mad()) # 求平均绝对偏差 mad = np.abs(fs - fs.mean()).mean() |
数据的偏度与峰度
1 | import matplotlib.pyplot as plt |
1 | print ('skewness = %6.4f' %fs.skew(skipna=True)) |
1 | skewness = 5.1695 |
apply\map\groupby及其它相关
1 | data = pd.DataFrame(data={'a':range(1,11), 'b':np.random.randn(10)}) |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | |
---|---|---|---|---|---|---|---|---|---|---|
a | 1.000000 | 2.000000 | 3.000000 | 4.000000 | 5.000000 | 6.000000 | 7.000000 | 8.0000 | 9.000000 | 10.000000 |
b | -0.087919 | 0.903531 | 0.603965 | 0.203005 | 0.282077 | -1.420298 | 0.283303 | -0.0565 | 1.047595 | -0.787566 |
1 | data.apply(np.mean) # 等价于data.mean(),是其完整形式 |
1 | a 5.500000 |
1 | data.apply(lambda x: x.astype('str')).dtypes # DataFrame没有astype方法,只有Series有 |