标签:scipy 因变量 编号 矛盾 匹配 相关 bsp rest app
数据的预处理
使用固定值 | 将缺失值的属性值,用一个常量替换.如广州一个工厂普通外来务工人员的"基本工资"属性的空缺值可以用2015年广州市普通外来务工人员工资标准1895元/月,该方法就是使用固定值来填补 |
回归方法 | 对带有缺失值的变量,根据已有的数据和其他的有关的其他变量(因变量)的数据建立拟合模型来预测缺失值的属性值 |
均值/中位数/众数补插 | 根据属性值的类型,用该属性取值的平均数/中位数/众数进行插补 |
插值法 | 插值法是利用已知点建立合适的插值函数f(x),未知值由对应点xi求出的函数值,f(xi)近似代替 |
最近邻插补 | 在记录中找到缺失值与却只样本最接近的样本的该属性值插补 |
import pandas as pd # 导入数据分析库pandas from scipy.interpolate import lagrange # 导入拉个朗日插值函数 data = pd.read_csv("./restaurant_sale.csv") # 读入数据 print data print data["sales"] data["sales"][(data["sales"] < 400) | (data["sales"] > 5000)] = None # 过滤异常值,将其变为空值 # 自定义列向量插值函数 # s为列向量,n为被插值的位置,k为取前后的数据个数,默认为5 def ployinterp_column(s, n, k=5): y = s[list(range(n-k, n)) + list(range(n+1, n+1+k))] # 取数 y = y[y.notnull()] # 剔除空值 return lagrange(y.index, list(y))(n) # 插值并返回插值结果 # 逐个元素判断是否需要插值 for i in data.columns: print i # 拿到的是表格的title for j in range(len(data)): print j # 拿到的是每一个title对应的数据 if (data[i].isnull())[j]: # 如果为空即插值 print data[i] data[i][j] = ployinterp_column(data[i], j) # 执行自定义的拉格朗日插值函数 # 输出结果到文件中 data.to_csv("./sales.csv")
异常值处理方法
|
方法描述
|
---|---|
不处理 | 直接在具有异常值的数据集上进行挖掘建模 |
删除含有异常值的记录 | 直接将含有异常值的记录删除 |
平均值修正 | 可用前后两个观测值的平均值修正该异常值 |
视为缺失值 |
将异常值视为缺失值,利用缺失值处理的方法进行处理 |
数据集成
标签:scipy 因变量 编号 矛盾 匹配 相关 bsp rest app
原文地址:https://www.cnblogs.com/ljc-0923/p/11746902.html