什么是缺失值?
就是数据缺少的数据,在 pandas 是 nan 标记,但是实际数据文件中可能会用另外一种方式标记,比如:问号。
对于缺失值,我们要进行如下步骤处理:
- 如何判断缺失值?
- 对于缺失值如何处理?
- 对于 nan 标记缺失值处理
- 填充
- 删除
- 对于非 nan 标记缺失值处理
- 先将非 NaN 替换 NaN
- 对于 nan 标记缺失值处理
import pandas as pd
data = pd.read_csv("./data/movie.csv")
# 1. 判断缺失值
data.describe() # 初步是否有缺失值,但是不准确
pd.notnull(data) # 如果值不是 nan, 则对应位置的值为 True
np.all(movie.notnull()) # False 表示有缺失值
np.any(movie.isnull()) # True 表示有缺失值
# 2. 处理缺失值:缺失值使用 nan 标记
for column in data.columns:
# 1. 先判断每一列是否有缺失值
if not np.all(data[column].notnull()):
# 2. 使用均值来填充缺失值
mean_value = data[column].mean()
# 3. 将均值填充 NaN
data[column].fillna(mean_value, inplace=True) # inplace 就地
# 3. 处理缺失值:缺失值使用非 nan 标记
# 3.1 先将缺失值标记符号转换为 pandas 的 nan 标记
# 3.2 再进行 dropna 或者 fillna 处理
data = pd.read_csv("./data/breast-cancer-wisconsin.data")
# 判断 data 中是否存在 ? 数据
np.any(data.values == "?")
# 将 ? 替换为 nan 标记
data = data.replace(to_replace='?', value=np.nan)
# 删除包含 nan 的行数据
data = data.dropna()

冀公网安备13050302001966号