Python初心者です。Python3を使っており、pandas dataframeのget_dummysで解決しようとして詰まっております。
前提・実現したいこと
DataFrame(1もしくは2)を元に0, 1のone hotに置き換えをしたい。
手元には加工用のデータとしてDataFrame1もしくはDataFrame2があります。idは個人で、これまで住んだことのある場所がlocationにでてきます。多くの人は同じ国にいますが、移動される方がいるので、locationを複数持ってる人がいるような形のデータです。
#加工に使用した元データ #DataFrame1 #id location #12 japan #9 china : #8 taiwan #10 usa #12 usa #10 canada #10 japan #もしくはこの形でも対応できます #DataFrame2 #id location #12 japan, usa #9 china : #8 taiwan #10 usa, canada, japan
#最終的に完成してほしい形 #DataFrame3 #id japan usa china canada taiwan #12 1 1 0 0 0 #9 0 0 1 0 0 : #8 0 0 0 0 1 #10 1 1 0 1 0
実際に算出するステップとしてはいくつか方法を考えましたが、idの数が多く(1万行ほど)、自分のPCのスペックだと処理に時間がかかる、リソースが足りないなどで、詰まっています。
1.DataFrame1でget_dummysを実施し各行ごとにone hotを作成。重複のあるものを後から足し合わせようとしたが、時間がかかり失敗。
2.get_dummysを使用せずに、同一のidを抽出後、作成しておいたtempleteに、該当の国名があれば、1を入れるようにする。時間がかかり同じく失敗。
3.事前に重複があるものを別々のdataframeに切り分けて、get_dummysを実行。カラムなどを揃えて、あとからmergeしようとするが失敗。
効率的に対応できるTipsなどアドバイスをいただけると大変有り難いです。
*今回のdataframeは質問用に作成したものです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/26 10:03