当我做数据处理与热码单在sklearn和熊猫,我有两个选择:fit_transform,在sklearn和get_dummies中转换pandas有什么不同?
1路:train_data使用fit_transform和TEST_DATA使用变换只
第二个办法:或者我可以用熊猫get_dummies
它们之间有什么不同?他们有相同的效果吗?
谢谢
当我做数据处理与热码单在sklearn和熊猫,我有两个选择:fit_transform,在sklearn和get_dummies中转换pandas有什么不同?
1路:train_data使用fit_transform和TEST_DATA使用变换只
第二个办法:或者我可以用熊猫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将返回一个数组,而不是熊猫数据框。
嗨,当我尝试将get_dummies与非字符串变量一起使用时,它也起作用。所以这就是为什么我没有看到他们之间的任何区别 – hminle
可能的重复[想知道pd.factorize,pd.get \ _dummies,sklearn.preprocessing.LableEncoder和OneHotEncoder之间的差异(http://stackoverflow.com/questions/40336502/want-to-know- -dd-get-dummies-sklearn-preprocessing) – Romain