我正在尝试将数据列表中包含列表的数据输入到机器学习算法中:
例如,患者可能有几种药物,并且对药物的几种反应他们也可能有名字。因此,如果他们服用超过 1 种药物,它将以 2 种或更多的形式出现。他们只有一个名字。
我相信 one-hot 编码是正确的方法。
这是我到目前为止所做的:
我有一个数据框:
df = pandas.DataFrame([{'drug': ['drugA','drugB'], 'patient': 'john'}, {'drug': ['drugC','drugD'], 'patient': 'angel'}])
drug patient
0 [drugA, drugB] john
1 [drugC, drugD] angel
我想得到类似的东西:
drugA drugB drugC drugD patient
0 1 1 0 0 john
0 0 0 1 1 angel
我试过这个:
pandas.get_dummies(df.apply(pandas.Series).stack()).sum(level=0)
但得到:
TypeError: unhashable type: 'list'