2016-11-27 92 views
1

当我做数据处理与热码单在sklearn和熊猫,我有两个选择:fit_transform,在sklearn和get_dummies中转换pandas有什么不同?

1路:train_data使用fit_transform和TEST_DATA使用变换只

第二个办法:或者我可以用熊猫get_dummies

它们之间有什么不同?他们有相同的效果吗?

谢谢

+0

可能的重复[想知道pd.factorize,pd.get \ _dummies,sklearn.preprocessing.LableEncoder和OneHotEncoder之间的差异(http://stackoverflow.com/questions/40336502/want-to-know- -dd-get-dummies-sklearn-preprocessing) – Romain

回答

1

基本上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将返回一个数组,而不是熊猫数据框。

+0

嗨,当我尝试将get_dummies与非字符串变量一起使用时,它也起作用。所以这就是为什么我没有看到他们之间的任何区别 – hminle

相关问题