我想将由元素列表组成的熊猫列分解为与唯一元素一样多的列,即 one-hot-encode
它们(值为 1
表示存在于行和 0
在缺席的情况下)。
例如,采用数据帧 df
Col1 Col2 Col3
C 33 [Apple, Orange, Banana]
A 2.5 [Apple, Grape]
B 42 [Banana]
我想将其转换为:
去向
Col1 Col2 Apple Orange Banana Grape
C 33 1 1 1 0
A 2.5 1 0 0 1
B 42 0 0 1 0
我如何使用 pandas/sklearn 来实现这一目标?
原文由 Melsauce 发布,翻译遵循 CC BY-SA 4.0 许可协议
我们还可以使用 sklearn.preprocessing.MultiLabelBinarizer :
通常我们希望对真实世界的数据使用 稀疏 DataFrame 以节省大量 RAM。
稀疏解决方案(适用于 Pandas v0.25.0+)
结果:
浓溶液
结果: