データのリスト内にリストを持つデータを機械学習アルゴリズムにフィードしようとしています:
たとえば、患者にはいくつかの薬があり、薬に対するいくつかの反応があり、名前もある場合があります。そのため、複数の薬を服用している場合は、2 つ以上のリストとして表示されます。名前は 1 つだけです。
ワンホット エンコーディングが正しい方法だと思います。
これが私がこれまでに行ったことです:
私はデータフレームを持っています:
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'