最近我注意到,如果您有这样的数据框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
来编码它而丢失了什么?
答案 0 :(得分:5)
是的,如果您只想编码字符串功能,则可以跳过LabelEncoder
的使用。另一方面,如果您有一个整数的分类列(而不是字符串),那么pd.get_dummies
将保持原样(例如,参见您的A或C列)。在这种情况下,您应该使用OneHotEncoder
。理想情况下OneHotEncoder
将支持整数和字符串,但这是worked on at the moment。