2

データのリスト内にリストを持つデータを機械学習アルゴリズムにフィードしようとしています:

たとえば、患者にはいくつかの薬があり、薬に対するいくつかの反応があり、名前もある場合があります。そのため、複数の薬を服用している場合は、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'
4

2 に答える 2