我正在使用亚马逊数据库进行我的研究,我想选择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)很明显,必须至少选择6.000行。但是如果我运行:
a= test[49952:50054,1]
a = a.tolist()
test2 = data[data.asin.isin(a)]它只从数据集中选择2000行。我已经尝试了多种方法,比如只在一个asin上过滤,但似乎不是很有效。有人能帮帮忙吗?如果有一个更好的选择来获得一个数据帧,在asin列中包含前100个最频繁的值的行,我也会很高兴。
发布于 2017-02-01 21:50:09
我找到了解决方案,必须将排序行更改为:
test = test[test[:,1].argsort()]https://stackoverflow.com/questions/41980577
复制相似问题