レシートの明細を列として移動するには、Pandas pivot_tableを使用してレシートごとに1行しか残さないようにしています。私の主な課題は、新しい列の名前を必要に応じて数え、NaNで満たすことです。Pandas Pivotテーブルインクリメンタルカラム名
私はこれにしようとしています:
customer_id receipt_id item_id
01 100 420
05 400 450
05 400 460
05 400 320
05 400 270
02 300 320
02 300 460
05 200 220
...次のようになります。
customer_id receipt_id 1 2 3 4 n..
01 100 420 NaN NaN NaN
05 400 450 460 320 270
02 300 320 460 NaN NaN
05 200 220 NaN NaN Nan
私はそれを動作させるためにしようとしているが、私は近くにないです。
pt = pd.pivot_table(df, values=["item_id"], index=["customer_id", "receipt_id"], columns=["item_id"], fill_value="NaN").reset_index()
Jezraelありがとうございました!あなたのソリューションは完璧に機能しました。レシートあたり平均2個の33M行で、58 GB RAMを使用して20分で実行されました。領収書の中には、最大30個のアイテムがあります。私はすべての列番号を落としました。 – user6453877
うれしいことがあなたを助けることができます!いい日! – jezrael