python的描述性统计

统计学分为两大部分,描述性统计学和推断性统计学。而描述性统计学在建模的时候往往是很重要而又容易被人忽略的一步, 而它的作用往往如下:

1.发现数据中的异常

2.通过分布图发现离群值点

3.检查数据缺失情况

4.检查标签占比情况,如坏样本太少的话,需要抽样调整好坏样本比例

所需模块python模块

matplotlib

pandas

seaborn

numpy

SciPy

例子

首先用numpy来创造一组随机数,我这边创造一组正态分布的随机数,总共50个用于实验。

from numpy.random import normal, randint

datatest= normal(0, 50, size=50)

一般描述性统计的统计量有均值,众数,中位数,极差,标准差,方差

这三种重要的统计量,可以分别用numpy包,SciPy包,pandas包计算

Numpy包计算方法

from numpy import mean, median

import numpy as np

np.mean(datatest)---计算均值

np.median(datatest)—计算中位数

np.std(datatest)—计算标准差

np.var(datatest)—计算方差

scipy包计算方法

from scipy.stats import mode

mode(datatest)

pandas包计算方法

用pandas计算统计量,需要先把数据转换重pandas的数据框格式

先加列名’number’,转为字典

datatestn={'number':datatest}

再转为dataframe格式

datatestn =pd.DataFrame(datatestn)

就可以直接用

datatestn.mean()

datatestn.median()

datatestn.mode()

或者一步到位

datatestn.describe()

如上,产出数量,均值,标准差,最大最小值,以及各分位点。

datatestn.skew()

datatestn.kurt()

针对我们自己要分析的数据,可以在sas上面处理完,用python读取,例如:

datatestnnn=pd.read_sas(‘D:\\dataplay.sas7bdat’)

datatestnnn['salary'].shape—取收入变量,再看行数和列数

然后用刚才提到的一系列方法分析,当用datatestnnn.skew()计算出来的偏度越大且为正数,说明数据的分布重尾在右边,右边的极端值较多,可能有较多的异常值。

可视化

可视化可以用matplotlib包和seaborn包,就可以从图片观察数据的分布,有直观的感觉。

import matplotlib.pyplot as plt

plt.hist(datatest,bins=50,color='b')

plt.xlabel('number')

plt.ylabel(Frequency’)

import seaborn as sns

sns.distplot(datatest)

要做箱线图的话可以执行以下代码

from pylab import *

来源|屁屁的sas数据分析

作者|屁屁

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180523B1H8FR00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券