提问者:小点点

Scikit学习中的一个热编码仅用于数据帧的一部分


然后,本教程将继续将字符串转换为数字数据:

X = pd.read_csv('titanic_data.csv')
X = X.select_dtypes(include=[object])
le = preprocessing.LabelEncoder()
X_2 = X.apply(le.fit_transform)

这使数据帧看起来如下所示:

之后,数据通过OneHotEncoder,我假设可以很容易地拆分并传递到决策树分类器。

问题是,在我看来,原始数字数据通过这种编码过程获得了很多。如何在以后保留或添加编码过程中删除的数字数据?谢谢


共1个答案

匿名用户

实际上有一个非常简单的解决方案-使用pd。获取虚拟对象()

如果您有以下数据帧:

so_data = {
    'passenger_id': [1,2,3,4,5],
    'survived': [1,0,0,1,0],
    'age': [24,25,68,39,5],
    'sex': ['female', 'male', 'male', 'female', 'female'],
    'first_name': ['Joanne', 'Mark', 'Josh', 'Petka', 'Ariel']
}
so_df = pd.DataFrame(so_data)

这看起来像:

    passenger_id    survived    age   sex       first_name
0              1           1    24  female        Joanne
1              2           0    25  male          Mark
2              3           0    68  male          Josh
3              4           1    39  female        Petka
4              5           0    5   female        Ariel

您只需执行以下操作:

pd.get_dummies(so_df)

这将给你:

(抱歉截图,但是在SO上清理df真的很难)