【发布时间】:2018-04-18 01:14:47
【问题描述】:
我有一个类似这样的熊猫数据框:
Col1 ABC
0 XYZ A
1 XYZ B
2 XYZ C
通过在 ABC 列上使用 pandas get_dummies() 函数,我可以得到:
Col1 A B C
0 XYZ 1 0 0
1 XYZ 0 1 0
2 XYZ 0 0 1
虽然我需要这样的东西,但 ABC 列的数据类型为 list / array:
Col1 ABC
0 XYZ [1,0,0]
1 XYZ [0,1,0]
2 XYZ [0,0,1]
我尝试使用get_dummies 函数,然后将所有列合并到我想要的列中。我找到了很多解释如何将多列组合为字符串的答案,例如:Combine two columns of text in dataframe in pandas/python。但我想不出一种方法将它们组合成一个列表。
这个问题介绍了使用sklearn的OneHotEncoder的想法,但我无法让它工作。 How do I one-hot encode one column of a pandas dataframe?
还有一件事:我遇到的所有答案都有解决方案,其中列名必须在组合它们时手动输入。有没有办法使用Dataframe.iloc()或拼接机制将列组合成一个列表?
【问题讨论】:
-
"ABC 列有一个列表/数组数据类型:"为什么?
标签: python pandas sklearn-pandas one-hot-encoding