背景:
需要根据用户的问卷提炼特征,进行建模预测用户的购买意向。但是实际情况是一部分是历史数据嘈乱、而且问卷形式的收集数据,部分用户填写随意不具备参考意义。
# -*- coding: utf-8 -*-
"""
"""
#1.数据预处理
import pandas as pd
import os
from scipy.interpolate import lagrange
data = pd.read_csv("My Notebook.csv")
# dropna删除 nan值
# print(data.dropna())
# fillna填补默认值
# print(data.fillna(0))
data = data.fillna(0)
# 数据插补
# 一般插值法,包含拉格朗日插值法、牛顿插值法、Hermite插值、分段插值、样条插值等。这里采用拉格朗日插值的函数
#过滤异常值,将其变为空值
data[u'a.self_income'][(data[u'a.self_income']<10000) | (data[u'a.self_income']>999999)] = None
data[u'a.spouse_income'][(data[u'a.spouse_income']<10000) | (data[u'a.spouse_income']>999999)] = None
data[u'a.insurance_budget'][(data[u'a.insurance_budget']<10) & (data[u'a.insurance_budget']>0)] = data[u'a.insurance_budget']*10000
data[u'a.insurance_budget'][(data[u'a.insurance_budget']<10000) | (data[u'a.insurance_budget']>999999)] = None
data= data.dropna()
print(data)
pd.DataFrame(data).to_csv("qinxi.csv")
做了简单的过滤判断去除异常值,当然大家可以采用数据分布查看,例如聚类分析,查看离群点