Skip to main content
 首页 » 编程设计

python之如何从包含集合的 pandas 列转置和转换为 "one-hot-encode"样式

2024年12月31日34mq0036

我想像 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