首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python数据科学发现女性收视率最高的电影

python数据科学发现女性收视率最高的电影
EN

Stack Overflow用户
提问于 2018-09-24 06:11:32
回答 1查看 1K关注 0票数 0

我正在为我的数据科学课做一项作业。我只是需要帮助开始,因为我有困难的理解如何使用熊猫分组和选择DISTINCT值。

我需要找到最高收视率的电影,由 same ,我的代码返回我的电影与ratings = 5,和gender = 'F',但它也重复同一部电影一次又一次,因为有超过一个用户。我不知道怎么才能放映电影,数数五星级的收视率,性别= F。下面是我的代码:

代码语言:javascript
复制
import pandas as pd
import os
m = pd.read_csv('movies.csv')
u = pd.read_csv('users.csv')
r = pd.read_csv('ratings.csv')

ur = pd.merge(u,r)
data = pd.merge(m,ur)

df = pd.DataFrame(data)

top10 = df.loc[(df.gender == 'F')&(df.rating == 5)]
print(top10)

数据文件可以下载这里

我只是需要一些帮助开始,还有更多的家庭作业,但一旦我知道这一点,我可以做剩下的。只是需要一步一步。非常感谢

mv_id 标题类型分级user_idE 218E 119性别<代码>E 220

代码语言:javascript
复制
1       Toy Story (1995)   Animation|Children's|Comedy  5   1   F    
2       Jumanji (1995)     Adventure|Children's|Fantasy 5   2   F        
3       Grumpier Old Men (1995) Comedy|Romance          5   3   F            
4       Waiting to Exhale (1995)    Comedy|Drama        5   4   F        
5       Father of the Bride Part II (1995)  Comedy      5   5   F   
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-24 09:36:32

我会尝试对尽可能少的数据执行过滤操作。要选择女性用户的五星级评分,不需要电影元数据(movies.csv).它可以在ur数据上完成,这比在df上更容易。

代码语言:javascript
复制
# filter the data in `ur`
f_5s_ratings = ur.loc[(ur.gender == 'F')&(ur.rating == 5)]

# count rows per `movie_id`
abs_num_f_5s_ratings = f_5s_ratings.groupby("movie_id").size()

abs_num_f_5s_ratings中,现在有一个DataFrame统计每个movie_id的女性用户的五星级收视率总数:

代码语言:javascript
复制
movie_id
1       253
2        15
3        14
...

如果你把movie_id键上的数据加入m作为一个新专栏(我会把它作为练习留给你),那么你可以根据这个值进行排序,得到你的前10部电影,女性的绝对五星级收视率。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52473547

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档