2017-02-01 7 views
2

Amazonのデータベースを使用して私の研究で最も評価の高いアイテムを100個選択します。isin pandasはデータフレーム内のすべての値を表示していません

array([[5, '0005019281'], 
     [5, '0005119367'], 
     [5, '0307141985'], 
     ..., 
     [1974, 'B00LG7VVPO'], 
     [2110, 'B00LH9ROKM'], 
     [2213, 'B00LT1JHLW']], dtype=object) 

それは選択された少なくとも6.000行が存在しなければならないことを確認するために、明らかである:だから最初に私は与えITEMIDの(ASIN)の値

data = amazon_data_parse('data/reviews_Movies_and_TV_5.json.gz') 
unique, counts = np.unique(data['asin'], return_counts=True) 
test = np.asarray((unique, counts)).T 
test.sort(axis=1) 

を数えています。しかし、実行した場合:

a= test[49952:50054,1] 
a = a.tolist() 
test2 = data[data.asin.isin(a)] 

データセットから2000行だけが選択されます。私はすでに複数のことを試してきました。ただ1つのフィルタでフィルタリングするだけですが、うまくいかないようです。誰かが助けてくれますか? asin列に100個の最も頻繁な値の行を持つデータフレームを取得する方が良い選択肢がある場合は、私もうれしいでしょう。

+0

: 'aは=テスト[49952:50054,1]'何でですか? –

+0

asin列の値のリスト –

+0

あなたのソートがあなたの思うように動作しないように見えます。 'test.sort(axis = 0)'を試してください –

答えて

0

私は、解決策を見つけに仕分けラインを変更しなければならなかった:あなたが実行すると

test = test[test[:,1].argsort()] 
+0

'test.sort(axis = 0)'はまったく同じことをするべきです。 –

関連する問題