2016-03-27 6 views
1

GraphlabでGraphlabまたはPythonで特定の行を探す

私は大きなリストからムービーの小さなサブセットを使って作業しています。

movieIds_5K_np = LL_features_SCD_min.to_numpy()[:,0] 
    ratings_33K_np = ratings_33K.to_numpy() 

movieIds_5K_npは、私のmovieIdsを含む配列です。 `ratings_33K_np 'は、すべてのムービーのムービーIDを含む2列目の4列の配列です。

ratings_33K_npの `movieIds_5K_np 'に存在する行のみを選択する必要があります。

私はこのアプローチを試みたが、それが動作しているようだしない:

ratings_5K_np = ratings_33K_np[ratings_33K_np[:,2]==movieIds_5K_np] 

にはどうすればGraphlabまたはいくつかのPythonライブラリを使用してこれを行うことができますか?私は元々ratings_33KmovieIds_5KがSFrameとしてインポートされたと言わなければなりません。

ratings_5K = LL_features_SCD_min[['id_column_name']].join(ratings_33K, on='id_column_name', how='left') 

限り、私はあなたのコードから分かるように、LL_features_SCD_minはあなたに対応するsframeですので、同様にあなたが2 sframe秒を持っていることを考えると

おかげ

答えて

1

は、あなたは、joinを行うことができますミニセット(5Kデータ)。だから、あなたが望むIDを取って、データセット全体でそれらを結合させて、あなたが望むIDだけを持つ新しいsframeを得ることができます。あなたのid列の名前を代用してください。

joingraphlab内でどのように機能するかについて詳しくは、SFramedocumentationを確認することを検討してください。

幸運を祈る!

+0

ありがとう、それはかなりうまくいった。私は '左'と '内'の違いを知ることができますか?私は 'inner' joinを使用していましたが、この場合は 'left'と記述してはいけません。 – Yas

+1

'left' joinは結果に' LL_features' sframeからすべての行を持つことを保証します( 'ratings_33 'sframe'の両方に含まれる行だけを返し、' ratings_33K'フレームに存在しない場合は 'LL_features' sframeから値を取り除きます。必要なものに応じて、どちらか一方を使うことができます。 'join'の型の視覚的説明については、[this](http://stackoverflow.com/questions/5706437/whats-the-difference-between-inner-join-left-join-right-join-and-完全参加)回答 – iulian

+0

素晴らしい説明とリンク。どうもありがとう – Yas

関連する問題