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

时间:2016-09-22 17:16:12

标签: 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

您可以使用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

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

我是否只是在整个数据帧中使用pd.get_dummies来编码它而丢失了什么?

1 个答案:

答案 0 :(得分:5)

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