数据预处理
目标
学会数据预处理技术。
学习内容
标准化和归一化
缺失值填充
代码示例
1. 导入必要的库
import pandas as pd
import numpy as np
from sklearn.preprocessing import StandardScaler, MinMaxScaler
2. 创建示例数据集
# 创建示例数据集
data = {
'姓名': ['张三', '李四', '王五', '赵六', '孙七'],
'年龄': [25, 30, 22, 35, 28],
'收入': [5000, 7000, 6000, 8000, 6500],
'身高': [170, 175, 165, 180, 172]
}
df = pd.DataFrame(data)
print(f"示例数据集: \n{df}")
3. 标准化
使用 StandardScaler 进行标准化
# 使用 StandardScaler 进行标准化
scaler = StandardScaler()
df[['年龄', '收入', '身高']] = scaler.fit_transform(df[['年龄', '收入', '身高']])
print(f"标准化后的数据集: \n{df}")
4. 归一化
使用 MinMaxScaler 进行归一化
# 使用 MinMaxScaler 进行归一化
scaler = MinMaxScaler()
df[['年龄', '收入', '身高']] = scaler.fit_transform(df[['年龄', '收入', '身高']])
print(f"归一化后的数据集: \n{df}")
5. 缺失值填充
检查缺失值
# 检查每列的缺失值数量
missing_values = df.isnull().sum()
print(f"每列的缺失值数量: \n{missing_values}")
生成带有缺失值的数据集
# 生成带有缺失值的数据集
np.random.seed(0)
df['收入'][np.random.randint(0, len(df), 2)] = np.nan
print(f"带有缺失值的数据集: \n{df}")
使用均值填充缺失值
# 使用均值填充缺失值
df['收入'].fillna(df['收入'].mean(), inplace=True)
print(f"使用均值填充缺失值后的数据集: \n{df}")
使用中位数填充缺失值
# 使用中位数填充缺失值
df['收入'].fillna(df['收入'].median(), inplace=True)
print(f"使用中位数填充缺失值后的数据集: \n{df}")
使用前向填充(forwa