第二章 第一节数据清洗及特征处理
2.1缺失值的观察与处理
1.查看缺失值
方法1..info()
可以清楚地展现出每一个项目的非缺失值的个数以及数据类型
方法2..isnull().sum()
把每列中缺失值的个数统计出来
2.1.2缺失值的处理
isnull和notnull检测是否为空值
dropna(axis,how,inplace)丢弃,删除缺失值
axis(删除行或者列,axis=1删除列,axis=0删除行)
how=any表示任何值为空则删除该列(行),how=all表示所有值为空则删除该列(行)
inplace=True则修改当前df,否则返回新的df
fillna(vaule,method,axis,inplace):填充缺失值
vaule:用于填充的值,可能是单个值,也可能是字典
axis:按行填充或者按列填充(axis=0按行填充,axis=1按列填充)
method等于ffill含义:使用前一个不为空的值填充forword fill;method等于bfill含义:使用后一个不为空的值填充backword fill
inplace=True则修改当前df,否则返回新的df
2.2重复值处理
1.查看重复值:.duplicated函数
2.重复值去除df = df.drop_duplicates()
df.head()
2.3特征观察与处理
2.3.1离散化
分箱操作的意思为将连续的数据进行离散化处理
Python实现连续数据的离散化处理主要基于两个函数:pd.cut和pd.qcut,pd.cut根据指定分界点对连续数据进行分箱(离散化)处理,pd.qcut可以指定箱子的数量对连续数据进行等宽分箱处理(注意:所谓等宽指的是每个箱子中的数据量是相同的)
pd.cut用法
1pd.cut(A,B)A:待分箱数据,B:分箱界点
2.pd.cut(A,B,labels=false) labels参数为false时,返回结果用0和1表示不同的箱子的指示符
3.pd.vaule_counts()对不同箱子中的数值个数进行计数
4pd.cut(A,B,labels=groupsnames)groupname=[ C,D]可以将不同的箱子命名为不同的名字。
pd.qcut用法:
1.pd.qcut(A,q)q为分箱参数,指所分箱子的数量
2.pd.qcut(A,[0,0.1,0.3,0.5,0.7,0.9])qcut还可以按照固定的频率对数据进行离散化。
2.3.2文本转化及处理
1.查看文本变量名及属性1.value_counts
2.unique
转化文本名称
1.replace
df['Sex_num'] = df['Sex'].replace(['male','female'],[1,2])
df.head()
2.map
df['Sex_num'] = df['Sex'].map({'male': 1, 'female': 2})
df.head()