数据处理
一 缺失值处理
1 删除 dropna
2 填充 / 替换
1)用中位数,众数,平均数
2)用临近值替换 fillna / replace
3)lagrange插值法
from scipy.interpolate import lagrange
可以写个函数,实现用lagrange差值
二 异常值处理
1 找到异常值
1)3σ原则
在正态分布中σ代表标准差,μ代表均值。x=μ即为图像的对称轴
3σ原则为
数值分布在(μ-σ,μ+σ)中的概率为0.6827
数值分布在(μ-2σ,μ+2σ)中的概率为0.9545
数值分布在(μ-3σ,μ+3σ)中的概率为0.9973
可以认为,Y 的取值几乎全部集中在(μ-3σ,μ+3σ)区间内,超出这个范围的可能性仅占不到0.3%
2)箱型图分析
相对来说箱型图可能用的比较多,而且,3σ原则特别极端才会显示。
2 处理异常值
采用缺失值一样的方式处理
三 数据标准化
1)0-1标准化
(series - min)/ (max-min)
标准化数据
经过处理的数据符合标准正态分布,即均值为0,标准差为1
2)Z-score 标准化
Z分数(z-score),是一个分数与平均数的差再除以标准差的过程 → z=(x-μ)/σ,其中x为某一具体分数,μ为平均数,σ为标准差
Z值的量代表着原始分数和母体平均值之间的距离,是以标准差为单位计算。在原始分数低于平均值时Z则为负数,反之则为正数
数学意义:一个给定分数距离平均数多少个标准差
什么情况用Z-score标准化:
在分类、聚类算法中,需要使用距离来度量相似性的时候,Z-score表现更好
四 数据连续属性离散化 discretization
1)等宽法
pd.cut(x,bins,labels)
注意:1)x 为series,返回值 类型 是series。 x为列表,返回值类型 为 Categorical。这里我们用到的是 Categorical,因为有codes属性和 categories属性
2)bins 可以接受int,和 列表,代表不同含义。
3) labels 可以设置不同组的名称
2)等频法
pd.qcut()
每个区间是等数量的。