1

Graphlab と sframes を使用して、ipython ノートブックでリピート注文レポートを作成しています。user_id、、user_emailを含む約10万行のデータを含むcsvファイルがありますuser_phone。一意の識別子という新しい列を追加しました。行ごとに、他のすべての行をトラバースして、または現在のレコードと一致するかどうかを確認してuser_iduser_emailますuser_phone。一意の識別子が空ではなく、一致する場合はuser_id、現在のレコードから一致する各レコードの unique_identifier スロットに割り当てます。

最後に、一致するすべての注文の最も古い注文をunique_identifier含む4 つの列を持つ SFrame を取得します。ラムダ関数を使用したメソッドをuser_id介してこれを行っています。.apply私のラップトップでは、プロセス全体に数秒かかります。ただし、プロセスが完了すると、SFframe は非常に遅くなり、SFrame.save が永遠にかかるように見えるポイントまで管理できなくなります。

追加のプロセスがunique_identifierメモリを詰まらせているようです。ただし、問題は sframe サイズとは関係ありません。10 行に制限すると、問題は解決しません。私は何を間違っていますか?

これが私の方法です

def set_unique_identifier():
  orders['unique_identifier'] = ''
  orders['unique_identifier'] = orders.apply(lambda order:      
       order['unique_identifier'] if order['unique_identifier'] else                                          
       orders[(orders['user_email']==order['user_email']) | 
       (orders['phone'] == order['user_phone'])][0]['user_id'])
4

1 に答える 1