数据规约:
标准化数据大数变小数数值规约:
离差标准化:
公式:x = (x-min_val)/(max_val-min_val)
范围【0-1】
缺点:当极差过大时,标准化后数据差距过大,甚至部分小值趋近于0
标准差标准化:
公式:x= (x-mean_val)/std_val
范围: 统计(-4,4); 服从标准正态分布的数据(均值为0,标准差为1)
缺点:标准化之后数据有负号
小数定标标准化:
公式:x = x/10**k
范围:【-1, 1】
缺点:当出现绝对值极大值;标准化后数据差距过大,甚至部分小值趋近于0
(三种方法的共同的特点:标准化后,数据大的仍比较大;数据小标准化后数据仍比较大;消除特征的量纲级影响)
特征量规约 :
降维pca
转换数据:
数据哑变量转换:非数值转换为数值:
pd.get_dummies()
X["部门"].astype('category').cat.codes
数据离散化:连续数据转换为离散数据:
pd.cut-等宽法:
pd.cut(df['hight'], bins=4) 每个区间的宽度是一致的,即等宽法
.cut(df['hight',bins=[140,150, 190]])
pd.qcut:等频法:
每个区间的数据量是一致的,pd.qcut(df['hight'], q=4)分四份,每组区间内数据量是一致的
合并数据:
直接合并/堆叠合并:
左右合并:
pd.concat( (df1,df2) aixs=1)
合并结果(在列的方向直接合并,取所有的列名称(重复不补合并),在行的方向,根据连接方式决定join=inner; 取行索引的交集,join=outer; 取行索引的并集)
上下合并:
pd.concat( (df1,df2) aixs=0)
合并结果(在行的方向直接合并,取所有的行名称(重复行不合并),在列的方向,根据连接方式决定join=inner; 取列索引的交集,join=outer; 取列索引的并集)
append:
df1.append(df2)
上下合并;通常用于列索引一致的情况下
缺点:以索引作为参考
主键合并:
pd.merge(left=df1, right=df2, on="", how="")
仅能实现左右合并,on="" 主键,可以是一个主键,也可多个主键; left_on,right_on。how="inner"、outer、left、right。
重叠合并:
df1.combine_first(df2)
df1是主表,目的:两个不完整的表,合成一张相对完整的表。将主表的空值,用其他表中的非空值填充。
数据清洗:
重复值清洗:
重复行:df.drop_duplicates()
重复列:内容完全一致,df['A'].equal(df['B'])
借助相关性:df[['A','B']].corr()
根据相关性的结果,删除极度相关的列【其中一种一列】
清洗操作:删除
缺失值清洗:
检测缺失值:
df.info()
df.isnull(),通过和sum结合使用
df.notnull()
处理方法:
删除--dropna
填充--fillna
插值法
异常值清洗:
检测异常值;
具体业务法
3 sigma:要求:数据满足 或者 近似 正态分布,生活中大部分数据,在数据量足够大的情况下,通常满足正态分布。
箱线图分析。
处理方法:删除异常值