数据清洗 是数据预处理的重要环节,旨在提高数据质量。它包括处理缺失值、重复值、不一致的数据格式,以及标准化和处理无效数据或噪声。
异常数据处理 是指检测和处理数据集中的异常值,确保这些值不会对分析和建模产生不利影响。常见的检测方法包括箱形图法、3σ法则和Z-score方法。处理异常值的策略包括删除、替换和标记。
1. 数据清洗
1.1 什么是数据清洗?
常见的数据清洗任务包括:
- 处理缺失值
- 处理重复值
- 处理不一致的数据格式
- 标准化数据
- 处理无效数据或噪声
- 处理异常值
1.2 数据清洗的常见步骤
1.2.1 处理缺失值
缺失值是指数据集中缺少的信息,通常用NaN
(Not a Number)表示。处理缺失值的常见方法包括:
- 删除:删除包含缺失值的行或列。
- 填补:用均值、中位数、众数、前一个值或后一个值填补缺失值。
- 插值:使用插值算法推断缺失值。
- 标记:将缺失值标记为一个特殊类别。
示例代码:
import pandas as pd
import numpy as np
# 示例数据
data = {
'A': [1, 2, np.nan, 4, 5],
'B': [5, np.nan, np.nan, 8, 10],
'C': [10, 11, 12, 13, np.nan]
}
# 创建DataFrame
df = pd.DataFrame(data)
# 删除含有缺失值的行
df_dropped = df.dropna()
# 用均值填补缺失值
df_filled = df.fillna(df.mean())
# 用前一个值填补缺失值
df_ffill = df.fillna(method='ffill')
print("原始数据:\n", df)
print("\n删除缺失值后的数据:\n", df_dropped)
print("\n用均值填补缺失值后的数据:\n", df_filled)
print("\n用前一个值填补缺失值后的数据:\n", df_ffill)
输出结果:
原始数据:
A B C
0 1.0 5.0 10.0
1 2.0 NaN 11.0
2 NaN NaN 12.0
3 4.0 8.0 13.0
4 5.0 10.0 NaN
删除缺失值后的数据:
A B C
0 1.0 5.0 10.0
3 4.0 8.0 13.0
用均值填补缺失值后的数据:
A B C
0 1.0 5.0 10.0
1 2.0 7.7 11.0
2 3.0 7.7 12.0
3 4.0 8.0 13.0
4