动手学习数据分析 第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 特征观察与处理
可以将特征值分为两类,即数值型特征和文本型特征。
数值型特征一般可以直接用于模型的训练,但有时候为了模型的稳定性及鲁棒性会对连续变量进行离散化。
文本型特征往往需要转换成数值型特征才能用于建模分析。
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术