Python JSON数组到熊猫中的一个热编码
假设我有一个熊猫数据框,看起来如下所示:Python JSON数组到熊猫中的一个热编码,python,pandas,dataframe,one-hot-encoding,Python,Pandas,Dataframe,One Hot Encoding,假设我有一个熊猫数据框,看起来如下所示: car colors corvette {"colors": ["red", "black"]} forester {"colors": ["white", "silver", "black"]} 我想对每辆车的颜色进行一个热编码,如下所示: car black red white silver black corvette 1 1
car colors
corvette {"colors": ["red", "black"]}
forester {"colors": ["white", "silver", "black"]}
我想对每辆车的颜色进行一个热编码,如下所示:
car black red white silver black
corvette 1 1 0 0 0
forester 1 0 1 1 0
实现这一目标的优雅方式是什么?IIUC:
(df.drop('colors', axis=1)
.join(pd.get_dummies(pd.DataFrame.from_records(df.colors.values)
['colors'].explode())
.sum(level=0)
)
)
输出:
car black red silver white
0 corvette 1 1 0 0
1 forester 1 0 1 1
使用以下代码运行此代码:d={'car':['corvette','forester'],'colors':[{'colors':['red','black']},{'colors':['white','silver','black']}}df=pd.DataFrame(data=d)以及您在上面提供的内容,收到以下错误:AttributeError:'Series'对象没有属性'explode'