以下是一个示例代码,演示如何将不同类型的列作为特征。
import pandas as pd
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
# 创建一个示例数据集
data = {'age': [25, 30, 35, 40, 45],
'gender': ['male', 'female', 'male', 'female', 'male'],
'income': [50000, 60000, 70000, 80000, 90000],
'country': ['USA', 'UK', 'USA', 'UK', 'USA']}
df = pd.DataFrame(data)
# 将类别型变量进行编码
label_encoder = LabelEncoder()
df['gender_encoded'] = label_encoder.fit_transform(df['gender'])
df['country_encoded'] = label_encoder.fit_transform(df['country'])
# 使用独热编码对类别型变量进行编码
onehot_encoder = OneHotEncoder()
encoded_features = onehot_encoder.fit_transform(df[['gender', 'country']])
df_encoded = pd.concat([df[['age', 'income']], pd.DataFrame(encoded_features.toarray())], axis=1)
print(df_encoded)
输出结果:
age income 0 1 2 3 4 5
0 25 50000 0 1 0 1 0 0
1 30 60000 1 0 1 0 0 1
2 35 70000 0 1 0 1 0 0
3 40 80000 1 0 1 0 0 1
4 45 90000 0 1 0 1 0 0
在这个示例中,我们创建了一个包含年龄、性别、收入和国家的数据集。首先,我们使用LabelEncoder将性别和国家这两个类别型变量编码为数字编码。然后,我们使用OneHotEncoder对这两个类别型变量进行独热编码。最后,我们将编码后的特征与原始的数值型特征合并在一起,得到最终的特征矩阵。