还原填充错误的缺失数据

还原填充错误的缺失数据

  • 手动方法 map() 函数映射
  • 自动方法 for循环 + replace() 替换
  • 说明

手动方法 map() 函数映射

map(func)

import pandas as pd
import numpy as np

## -------
df = pd.DataFrame()
df['身高'] = [170, -1, 190, 150, 166]
df['体重'] = [50, 65, 70, 60, -1]
df.index = ['a', 'b', 'c', 'd', 'e']  ## 代表人名
## ----

结果:
还原填充错误的缺失数据_第1张图片

很明显人的身高不可能是 -1 , 体重也不可能是 -1 , 这些数据属于有违反常识的数据值。 因此这里是误填充操作(或者可以理解成:异常值)

那么我们应该如何发现它们,并将其替换成缺失值形式呢?

df['身高'] = df['身高'].map(lambda x : x if x != -1 else None)
df['体重'] = df['体重'].map(lambda x : x if x != -1 else None)
df

结果:
还原填充错误的缺失数据_第2张图片

自动方法 for循环 + replace() 替换

如果我们的数据列数较小的时候,我们可以进行手动填充,但是有许多数据列都存在缺失,那就需要进行自动填充以提高效率

columns = df[df == -1].columns.tolist()
for col in columns:
    df[col].replace([-1], [np.nan], inplace=True)
df

注意: 这里使用的 np.nan 和之前使用的 None 均可以代表缺失数据,None (是 python中的 ) , np.nan(是numpy中的)
还原填充错误的缺失数据_第3张图片

说明

以上这些心得是在特征工程中体会得到的,如果数据存在缺失,那么对缺失值的操作不是很方便,不妨先将缺失值用一些独特的值来填充,然后进行特征构建组合,这样的话可能会破坏原始的数据结构,但是却能打开数据各个特征之间的关系,可以结合具体业务展开。
使用方法:

1. 缺失数据检查
2. 缺失数据用独特的值填充 (一般使用-1, -9999,等)
3. 进行特征构建
4. 判断构架之后特征的相关性
5. 把数据还原会原始状态(本blog的内容)

以上方法结合具体的情况使用。

你可能感兴趣的:(数据科学项目实战学习,数据分析,python,机器学习)