私は(と呼ばれる:データ)のデータフレームを持っているに追加し、顧客とその購入のリストを持っている - 次のようになります。効率的にパンダDATAFRAMEに特定の値と一致する行をチェックし、別のデータフレーム
ID product 1 orange 1 banana 2 apple 2 orange 2 banana 3 banana 3 apple 4 apple 5 apple 5 orange 5 banana
私は希望そうするためには、索引がcostumersのidsであり、列が製品である行列を生成し、costumerが製品を購入した場合は1を、そうでない場合は0を行列に入力します。最後の行列は次のようになります。
私はそれを行っているが、それは私が3,000以上の製品で約2万のcostumersを扱っていて(完了する推定時間は約4である時間がかかりすぎました日々!)。ここで
は私のコードです:
df_matrix = pd.DataFrame(index = customers, columns = products)
for indx in df_matrix.index:
for col in df_matrix.columns:
if ((data['ID'] == indx) & (data['product'] == col)).any() == True:
df_matrix.loc[indx,col] = 1
を持っている任意の()' –
@noobieを。ありがとうが、私はそれが行の数は、顧客の数ではなく、最初のデータフレームの行の数に等しいです。 – goodX
@ maarten-fabr%c3%a9 'ID'でエラーが発生しました – goodX