我想像 question 一样对 pandas 列进行分解:
我想转置然后“one-hot-encode”风格。例如,采用数据框 df
Col1 Col2
C {Apple, Orange, Banana}
A {Apple, Grape}
B {Banana}
我想转换它并得到:
df
Col1 C A B
Apple 1 1 0
Orange 1 0 0
Banana 1 0 1
Grape 0 1 0
我如何使用 pandas/Sklearn 来实现这一目标?
请您参考如下方法:
这是一个可能的答案(假设 Col1 是您的索引):
from sklearn.preprocessing import MultiLabelBinarizer
mlb = MultiLabelBinarizer()
one_hot_encoded = pd.DataFrame(mlb.fit_transform(df['Col2']), columns=mlb.classes_, index=df.index)
one_hot_encoded.T
