数据预处理是机器学习、数据分析和数据挖掘中的重要步骤,它通常包括数据清洗、转换、
标准化、归一化、编码等。以下是一个简单的 Python 数据预处理示例,使用 pandas 库来处
理一个 CSV 文件中的数据。
假设我们有一个 CSV 文件,其中包含一些数值和分类数据,我们需要进行以下预处理步骤:
读取数据
检查缺失值并处理
数据类型转换(如果需要)
标准化或归一化数值数据(如果需要)
编码分类数据(例如,使用独热编码)
python
import pandas as pd
from sklearn.preprocessing import StandardScaler, OneHotEncoder
from sklearn.compose import ColumnTransformer
# 1. 读取数据
df = pd.read_csv('your_data.csv')
# 2. 检查缺失值并处理
# 展示缺失值
print(df.isnull().sum())
# 假设我们决定填充数值列的缺失值为平均值,分类列的缺失值为最常见值
numeric_cols = df.select_dtypes(include=['int64', 'float64']).columns
categorical_cols = df.select_dtypes(include=['object']).columns
df[numeric_cols] = df[numeric_cols].fillna(df[numeric_cols].mean())
df[categorical_cols] = df[categorical_cols].fillna(df[categorical_cols].mode().iloc[0])
# 3. 数据类型转换(如果需要)
# 在这个例子中,我们假设所有列的数据类型都是正确的
# 4. 标准化或归一化数值数据(如果需要)
# 创建一个 scaler 对象
scaler = StandardScaler()
# 假设我们只对某些数值列进行标准化
numeric_cols_to_scale = ['numeric_col1', 'numeric_col2'] # 替换为你的列名
# 对数据进行标准化
scaled_numeric_data = scaler.fit_transform(df[numeric_cols_to_scale])
# 注意:通常我们不直接在原始 DataFrame 上进行转换,而是保存转换后的数据供后续使用