LabelEncoder().fit_transform与pd.get_dummies进行分类编码

Jon*_*tel 4 python pandas scikit-learn sklearn-pandas

最近我注意到,如果你有这样的数据帧df:

   A      B   C
0  0   Boat  45
1  1    NaN  12
2  2    Cat   6
3  3  Moose  21
4  4   Boat  43
Run Code Online (Sandbox Code Playgroud)

您可以使用pd.get_dummies以下命令自动编码分类数据:

df1 = pd.get_dummies(df)
Run Code Online (Sandbox Code Playgroud)

这产生了这个:

   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
Run Code Online (Sandbox Code Playgroud)

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

我只是pd.get_dummies在我的整个数据帧上使用它来编码它而失去任何东西吗?

ely*_*ase 5

是的,LabelEncoder如果您只想编码字符串功能,可以跳过使用.另一方面,如果你有一个整数的分类列(而不是字符串),那么pd.get_dummies它将保持原样(例如,参见你的A或C列).在那种情况下你应该使用OneHotEncoder.理想的情况下OneHotEncoder将支持整数和字符串,但是这是被目前工作的.