数据清洗
原始数据当中经常会有很多缺失值、异常值等,需要经过一定的处理才能继续做后面的分析或建模,所以拿到数据的第一步是进行数据清洗。
缺失值观察与处理
(一)缺失值观察
#查看数据属性
data.info()
#按列统计缺失值
data.isna().sum()
#同时观察多列数据
data[['Age','Cabin','Embarked']]
(二)缺失值处理
缺失值处理可分为两个部分,一个是直接删除,如:dropna()函数;另一个是填充的方式,如fillna()函数。
DataFrame.dropna(self, axis=0, how=‘any’, thresh=None, subset=None, inplace=False)
- axis:{0,1}是否删除包含缺失值的行或列,0表示行,1表示列
- how:{‘any’,‘all’}'any’表示存在NA,则删除行或列,‘all’表示所有值均为NA则删除行或列
data_1 = data['Age'].dropna()
data[data['Age']==np.isnan(np.nan)]=0
#isunull能较好填充,但是是含缺失值的行数据均填充为0
data[data['Age'].isnull()]=0
data.dropna()
DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None, **kwargs)
- value:用于填充缺失值(例如0),或者指定值来进行填充
- method: {‘backfill’, ‘bfill’, ‘pad’, ‘ffill’, N