当我在Sklearn和Pandas中进行单次编码进行数据处理时,我有两个选择:
第一个方法:train_data使用fit_transform和test_data使用transform
第二个方法:或者我可以使用pandas get_dummies
它们之间有什么区别?它们是否具有相同的效果?
谢谢
基本上,onehotencoder和pandas.get_dummies都会从分类变量中创建二进制变量。例如:
df = pd.DataFrame({'A': ["1", "1", "3"], 'B': ["2", "3", "1"],
'C': [1, 2, 3]})
print(pd.get_dummies(df, prefix=['col1', 'col2']))
将打印出来:
C col1_1 col1_3 col2_1 col2_2 col2_3
0 1 1.0 0.0 0.0 1.0 0.0
1 2 1.0 0.0 0.0 0.0 1.0
2 3 0.0 1.0 1.0 0.0 0.0
onehotencoder可以处理非弦变量,而get_dummies不能。另外,OneHotenCoder将返回数组,而不是Pandas DataFrame。