prod_id text rating
AB123 some text 5
AB123 some text 2
AB123 some text 4
AC456 some text 3
AC456 some text 2
AD777 some text 2
AD777 some text 5
AD777 some text 5
AD777 some text 4
AE999 some text 4
AF000 some text 5
AG222 some text 5
AG222 some text 3
AG222 some text 3
我想知道哪个产品评论最多(行数最多),所以我使用以下代码来获得前3个产品(我只需要3个评价最多的产品).
s = df['prod_id'].value_counts().sort_values(ascending=False).head(3)
然后我会得到这个结果.
AD777 4
AB123 3
AG222 3
但我真正需要的是具有上述ID的行.我需要所有AD777,AB123和AG222的整行,如下所示.
product_id text rating
AD777 some text 2
AD777 some text 5
AD777 some text 5
AD777 some text 4
AB123 some text 5
AB123 some text 2
AB123 some text 4
AG222 some text 5
AG222 some text 3
AG222 some text 3
我怎么做?我尝试了打印(df.iloc [s]),但当然它不起作用.正如我在文档中看到的那样,value_counts返回系列而不是数据帧.任何的想法?谢谢
解决方法:
我认为你需要merge
与左连接与创建索引为s的DataFrame:
df = pd.DataFrame({'prod_id':s.index}).merge(df, how='left')
print (df)
prod_id text rating
0 AD777 some text 2
1 AD777 some text 5
2 AD777 some text 5
3 AD777 some text 4
4 AB123 some text 5
5 AB123 some text 2
6 AB123 some text 4
7 AG222 some text 5
8 AG222 some text 3
9 AG222 some text 3
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。