Python数据挖掘学习3单属性分析(实战)

这里关键就是对每个属性进行各种查看,然后对其中异常的数值进行剔除,主要就是平均数、峰值啊等的查看,直接上常用的函数了。

例如

       1.通过平均值和最大值最小值对比可能发现数据都是k附近的,但是最大值或者最小值远远偏离k,说明最大值或最小值可能是个异常值,处理方法:取边界值或者舍弃掉。

       2.某个属性中为空,也说明位异常值。

       3.如果计算的某个数值的范围为0-1,利用最大值最小值可以看出是否存在异常值。

       (这些都是针对具体属性的要求来观察的)

import pandas as pd
import scipy.stats as ss
import numpy as np
df=pd.read_csv("/Users/ren/PycharmProjects/untitled7/data/HR_comma_sep.csv")
print(df)
#异常值分析
sl_s=df['satisfaction_level']
#查看所以数据的satisfaction_level
print(sl_s.isnull())
#仅查看异常的satisfaction_level
sl_s[sl_s.isnull]
#丢弃异常数据
sl_s=sl_s.dropna();
#查看均值
sl_s.mean()
#查看标准差
sl_s.std()
#最大值
sl_s.max()
#最小值
sl_s.min()
#中位数
sl_s.median()
#下4分位数
s_low=sl_s.quantile(q=0.25)
#上4分位数
s_high=sl_s.quantile(q=0.75)
#四分位间距
s_interval=s_high-s_low

#剔除异常值
k=1.5
sl_s=sl_s[sl_s<s_high+k*s_interval][sl_s>s_low-k*s_interval]

#偏度
sl_s.skew()
#峰度
sl_s.kurt()
#获取数据用np
#参数:数值,分布间隔
np.histogram(sl_s.values,bins=np.arange(sl_s.min(),sl_s.max(),0.1))
#分成十份
np.histogram(sl_s.values,bins=10)
#计算数字出现次数
np.sl_s.value_counts()
#计算数字出现次数的比例
np.sl_s.value_counts(normalize=True)
#计算数字出现次数的比例的排序
np.sl_s.value_counts(normalize=True).sort_index()
#ycounts也有bins属性,统计区间的出现次数
np.sl_s.value_counts(bins=(sl_s.min(),sl_s.max(),0.1))
#清除特定异常值,为xxx
sl_s.where(sl_s!='xxx').dropna()

猜你喜欢

转载自blog.csdn.net/RHJlife/article/details/89197230