【问题标题】:LabelEncoder().fit_transform vs. pd.get_dummies for categorical codingLabelEncoder().fit_transform 与 pd.get_dummies 进行分类编码
【发布时间】:2017-01-31 09:22:25
【问题描述】:

最近引起我注意的是,如果您有这样的数据框df

   A      B   C
0  0   Boat  45
1  1    NaN  12
2  2    Cat   6
3  3  Moose  21
4  4   Boat  43

您可以使用pd.get_dummies自动对分类数据进行编码:

df1 = pd.get_dummies(df)

产生这个:

   A   C  B_Boat  B_Cat  B_Moose
0  0  45     1.0    0.0      0.0
1  1  12     0.0    0.0      0.0
2  2   6     0.0    1.0      0.0
3  3  21     0.0    0.0      1.0
4  4  43     1.0    0.0      0.0

在将其放入pd.get_dummies 之前,我通常将LabelEncoder().fit_transform 用于此类任务,但如果我可以跳过一些可取的步骤。

我只是在整个数据帧上使用pd.get_dummies 对其进行编码是否会丢失任何东西?

【问题讨论】:

    标签: python pandas scikit-learn sklearn-pandas


    【解决方案1】:

    是的,如果你只想编码字符串特征,你可以跳过LabelEncoder 的使用。另一方面,如果您有一个整数分类列(而不是字符串),那么pd.get_dummies 将保持原样(例如,请参见您的 A 或 C 列)。在这种情况下,您应该使用OneHotEncoder。理想情况下,OneHotEncoder 将同时支持整数和字符串,但这是 worked on at the moment

    【讨论】:

    • 好的,谢谢,这证实了我的直觉,我已经对我的数据集进行了适当的更改以解决这个问题,所以一切都很好。
    猜你喜欢
    • 2021-09-13
    • 2021-01-26
    • 2016-11-19
    • 2019-02-25
    • 2020-08-11
    • 2018-06-18
    • 2020-07-16
    • 1970-01-01
    相关资源
    最近更新 更多