Pandas isin不显示数据帧中的所有值
我正在使用亚马逊数据库进行我的研究,在那里我想选择100个评分最高的项目。首先我计算了itemID的asin的值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(
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应该做完全相同的事情。