数据预处理是机器学习和数据分析过程中的重要步骤,它涉及清洗、转换、归一化、标准化
等任务。以下是一个简单的 Python 代码示例,用于数据预处理:
假设我们有一个包含缺失值、异常值和需要归一化的特征的 Pandas DataFrame。
python
import pandas as pd
import numpy as np
from sklearn.preprocessing import StandardScaler
# 创建一个示例 DataFrame
data = {
'Age': [25, np.nan, 22, 35, 28, 31],
'Salary': [50000, 55000, 150000, 45000, 60000, 47000],
'Country': ['USA', 'France', 'USA', 'Germany', 'UK', 'USA']
}
df = pd.DataFrame(data)
# 数据预处理步骤
# 1. 清洗数据(例如,处理缺失值)
# 使用均值填充 Age 列中的缺失值
df['Age'].fillna(df['Age'].mean(), inplace=True)
# 2. 转换数据(例如,将分类数据转换为数值)
# 使用 LabelEncoder 或 get_dummies 将 Country 列转换为数值
# 这里我们使用 get_dummies,因为它可以处理多个类别
df_encoded = pd.get_dummies(df, columns=['Country'])
# 3. 归一化或标准化数据(例如,对于 Salary 列)
# 使用 StandardScaler 进行标准化
scaler = StandardScaler()
salary_scaled = scaler.fit_transform(df_encoded[['Salary']].values).reshape(-1, 1)
# 将标准化后的 Salary 列合并回 DataFrame
df_encoded['Salary_scaled'] = salary_scaled.flatten()
# 查看预处理后的数据
print(df_encoded)
注意:
在这个示例中,我们仅处理了 Age 列中的缺失值和 Salary 列的标准化。在实际应用中,您可
能需要处理更多列和更复杂的情况。
对于分类数据,我们使用了 get_dummies 方法将其转换为多个二进制列。如果您想将分类