私は次の問題を処理するための Python の方法を探しています。
このpandas.get_dummies()
メソッドは、データフレームのカテゴリ列からダミーを作成するのに最適です。たとえば、列に の値がある場合['A', 'B']
、get_dummies()
2 つのダミー変数を作成し、それに応じて 0 または 1 を割り当てます。
ここで、この状況を処理する必要があります。 1 つの列 (これを「ラベル」と呼びます) には、 のような値があります['A', 'B', 'C', 'D', 'A*C', 'C*D']
。get_dummies()
6 つのダミーを作成しますが、必要なのは 4 つだけなので、行に複数の 1 が含まれる可能性があります。
これを Python で処理する方法はありますか? 取得するためのステップバイステップのアルゴリズムしか思いつきませんでしたが、それには get_dummies() は含まれません。ありがとうございます
編集しました。より明確になっていると思います。
ベストアンサー1
この質問がされてからしばらく経っていることは承知していますが、(少なくとも今ワンライナーは、ドキュメント:
In [4]: df
Out[4]:
label
0 (a, c, e)
1 (a, d)
2 (b,)
3 (d, e)
In [5]: df['label'].str.join(sep='*').str.get_dummies(sep='*')
Out[5]:
a b c d e
0 1 0 1 0 1
1 1 0 0 1 0
2 0 1 0 0 0
3 0 0 0 1 1