Pandasのデータフレームで列ごとの集合演算をおこないたい。
解決したいこと
pandasのデータフレームに2列の抽出された単語リストがあります。
これを元に集合に変換
さらに、積集合や差集合などの演算を行って新しい列を作りたい
やりたいことのイメージです
元のデータフレーム
Index | A | B |
---|---|---|
0 | ["い","ろ","は"] | ["い","ろ","は"] |
1 | ["に","ほ"] | ["に","ほ","へ"] |
2 | ["へ","と","ち"] | ["と","と","ち"] |
3 | ["り","ぬ","り"] | ["を","る"] |
変換後のデータフレーム
Index | A | B | 積集合 | 差集合(左) |
---|---|---|---|---|
0 | {"い","ろ","は"} | {"い","ろ","は"} | {"い","ろ","は"} | {} |
1 | {"に","ほ","と","ち"} | {"に","ほ","へ"} | {"に","ほ"} | {"と","ち"} |
2 | {"へ","と","ち"} | {"と","ち"} | {"と","ち"} | {"へ"} |
3 | {"り","ぬ"} | {"を","る"} | {} | {"り"} |
自分で試したこと
set()関数を使って、一つのリストを集合にすることはできるが、データフレームの列ごとができない。
apply()等を試してみたがうまく行きませんでした。
イテレーションで地道に変換する方法もあるかと思いますが、よい解決策はないでしょうか
0