数据清洗/数据预处理
1. 缺失值处理
1.1 缺失值
Pandas 中缺失值的表现方式有三种:
1)Python内置的None值
2)在pandas中,将缺失值表示为NA,表示不可用not available。
3)对于数值数据,pandas使用浮点值NaN(Not a Number)表示缺失数据。
后面出来数据,如果遇到错误:说什么foloat错误,那就是有缺失值,需要处理掉
所以,缺失值有3种:None,NA,NaN
(None是Python的一种数据类型,NaN是浮点类型)
1.2 缺失值查看
df.info()
df.isnull()
1.3 缺失值处理
对于缺失值(None,NA,NaN),有两种处理办法:
① 删除包含缺失值的行/列
② 对缺失值进行填充/替代
-
删除 dropna()
在 Series 中使用,它会返回所有非空数据及其索引值。
对于 DataFrame,默认会删除所有出现缺失值的行,如需要删除列,需要传入参数 axis=1,若只想删除一行/列全部为空值的对象,可以传入 how=’ all ’ -
填充 fillna()
fillna()中可以选择的参数很多,比如用一个常数,也可以使用中位数、众数、平均数等统计学的值,也可以向上向下取相邻的一个非空值进行缺失值填充。
2. 处理重复值
drop_duplicates()
3. 数据类型转换
数据类型查看
整体df 查看:df.info( )
单列 series 查看:series.dtype
数据类型转换
df.astype()
注:Pandas 数据类型
4. 数据排序
df.sort_values()
df.sort_index()
记得使用 df.reset_index() 恢复索引排序
5. 异常值处理
- 发现异常值
判断标准:
①行业经验
②箱型图上下边缘的点
③3 西格玛原则
具体实现可以通过 df.describe() 观察也可以通过箱型图的绘制等。
- 处理异常值
① 删除 : 过滤删除行
② 填充: replace( )
③ 研究异常值