Pandas isin不显示数据帧中的所有值

Pandas isin不显示数据帧中的所有值,pandas,numpy,Pandas,Numpy,我正在使用亚马逊数据库进行我的研究,在那里我想选择100个评分最高的项目。首先我计算了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) 其中: array(

我正在使用亚马逊数据库进行我的研究,在那里我想选择100个评分最高的项目。首先我计算了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)
其中:

array([[5, '0005019281'],
       [5, '0005119367'],
       [5, '0307141985'],
       ..., 
       [1974, 'B00LG7VVPO'],
       [2110, 'B00LH9ROKM'],
       [2213, 'B00LT1JHLW']], dtype=object)
显然,必须至少选择6000行。但如果我跑步:

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

它仅从数据集中选择2000行。我已经尝试了多种方法,比如只在一个asin上进行过滤,但它似乎不起作用。有人能帮忙吗?如果有更好的选择来获取asin列中包含100个最频繁值的行的数据帧,我也会很高兴。

我找到了解决方案,不得不将排序行更改为:

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

当您执行:a=test[49952:50054,1]时,a中有什么?asin列的值列表看起来您的排序方式与您想象的不一样。尝试测试。sortaxis=0测试。sortaxis=0应该做完全相同的事情。