动手学习数据分析 第2章

本文是Datawhale的组队学习动手学习数据分析的学习笔记,课件内容来源于Datawhale的团队;代码部分参考了b站up主橘子冰的一隅角落的系列视频

第一节 数据清洗及特征处理

刚拿到的数据通常是不干净的,即数据中存在缺失值、重复值、异常点等,需要经过处理后再进行分析和建模。

2.1 缺失值观察与处理

2.1.1 任务一:缺失值观察

#方法一
df.info()
#方法二
df.isnull().sum()
#方法三
df[['Age','Cabin','Embarked']].head(3)

2.1.2 任务二:对缺失值进行处理

使用dropna函数与fillna函数来实现对缺失值的处理。

dropn函数的用法: 用于删除空值

dropna(axis,how,thresh,subset,inplace)

  • axis:默认为0,0代表行,代表列
  • how:默认为any,删除空值所在的行或者列(取决于axis的取值);参数为all时,只删除全为空值的行或列,若不全为空值则不起作用
  • thresh:当参数为x时,表示保留空值的数量小于x的每一行或者是每一列(取决于axis的取值)
  • subset:指定删除特定行或列的空值所在的列或行,如果axis=0,表示如果指定行x中有空值,则删除所在的列;如果axis=1,表示如果指定列x有空值,则删除空值所在的行
  • inplace:默认为False,即原数据不受影响;参数为True时,表示改变原数据

fillna函数的用法: 用于填充空值

fillna(axis,mthod,limit,inplace)

  • axis:默认为0,取0为按照列填充,取1为按照行填充
  • method:表示填充的方式,如果为‘ffill’,使用前一个数据填充;如果为‘bfill’,使用后一个数据填充。可省略
  • limit:限制填充的空值的个数
  • inplace:默认为False,即原数据不受影响;参数为True时,表示改变原数据

2.2 重复值观察与处理

2.2.1 任务一:请查看数据中的重复值

使用duplicated检测数据是否重复。

duplicated函数的用法:

DataFrame.duplicated(subsete, keep)

  • subset:默认为None,即检测所有的列。若subset指定部分列则只检测这些列

  • keep:可选的集合 {'first', 'last', False},默认是 ‘first’。这个域决定了如何去标识重复行。

    first:将除第一次出现以外的重复数据标记为True

    last:将除最后一次出现以外的重复数据标记为True

    False:将所有重复的项都标记为True(不管是不是第一次出现)

  • inplace:同上

2.2.2 任务二:对重复值进行处理

使用drop_duplicates处理重复值。

drop_duplicates函数的用法:

DataFrame.drop_duplicates(subsete, keep)

所有的参数用法与duplicated函数相同

2.2.3 任务三:将前面清洗的数据保存为csv格式

DataFrame.to_csv(文件名)

2.3 特征观察与处理

可以将特征值分为两类,即数值型特征和文本型特征。

数值型特征一般可以直接用于模型的训练,但有时候为了模型的稳定性及鲁棒性会对连续变量进行离散化。

文本型特征往往需要转换成数值型特征才能用于建模分析。

posted on 2024-03-15 00:20  人间烟火天上星  阅读(7)  评论(0编辑  收藏  举报