1,盖帽法:
#todo 噪声值处理 盖帽法 计算出百分位数
q1 = data['NewAge'].quantile(0.01)
q99 = data['NewAge'].quantile(0.99)
def func(flo,qmax):
def f(x):
if x < flo:
x=flo
elif x>qmax:
x=qmax
return x
return f
func1 = func(q1,q99)
data['NewAge'] = data['NewAge'].map(func1)
print(data['NewAge'].describe())
- 注意里面嵌套函数的写法: 外面的func()函数返回的是一个函数
- func1 就是当flo = q1, qmax = q99 时返回的函数。
2,分箱法:把所有的数据利用方法 **pd.qcut()**分为一段一段的
##todo 分箱法 qcut()
data['NewAge_qcut'] = pd.qcut(data['NewAge'],4)
data.to_csv('C:/Users/76189/Desktop/routine项目/python学习/camp_fin.csv')
print(data)