python葡萄酒数据集_《利用Python进行数据分析》 14.2 MovieLens 1M数据集

第十四章 数据分析示例

14.2 MovieLens 1M数据集

GroupLens实验室(http://www.grouplens.org/node/73)提供了一些从MovieLens用户那里收集的20世纪90年代末和21世纪初的电影评分数据的集合。这些数据提供了电影的评分、电影的元数据(流派和年份)以及观众数据(年龄、邮编、性别、职业)。这些数据通常会用于基于机器学习算法的推荐系统开发,虽然我们不会在本书中详细探讨机器学习技术,但我会向你展示如何将这些数据集切片并切成你需要的确切形式。

MovieLens 1M数据集包含6,000个用户对4,000部电影的100万个评分。数据分布在三个表格中:评分,用户信息和电影信息。1.从ZIP文件中提取数据后,我们可以使用pandas.read_table将每个表加载到一个pandas DataFrame对象中。(见图14-1)

图14-1:使用pandas.read_table加载

2.通过使用Python的切片语法来查看每个DataFrame的前几行来验证一切是否成功(见图14-2、14-3)

图14-2:使用切片查验

图14-3:查验

注:年龄和职业被编码为整数,这些表示了数据集的README文件所描述的分组。3.合并数据集

跨越三个表格分析数据并不是一件简单的事情,例如,假设你想按性别和年龄计算某个电影的平均评分。正如你将看到的,将所有表格合并到单个表中会更容易。使用pandas的合并功能,我们首先将ratings表与users表合并,然后将该结果与movies表数据合并。pandas根据重叠名称推断哪些列用作合并的(或连接)键位(见图14-4)

图14-4:合并数据集

4.为了获得按性别分级的每部电影的平均电影评分,我们可以使用pivot_table方法(见图14-5)

图14-5:获取按性别分级的平均电影评分

注:上面的代码产生了另一个DataFrame,其中包含电影标题作为行标签(“索引”)和性别作为列标签的平均评分。5.首先过滤掉少于250(完全随意定的数字)个评分的电影

为此,我接着按标题对数据进行分组,并使用size()为每个标题获取一个元素是各分组大小的Series(见图14-6)

图14-6:过滤

6.评分多于250个的电影标题的索引之后可以用于从mean_ratings中选出所需的行(见图14-8)

图14-8:选取评分多于250个的电影

7.看女性观众的top电影,我们可以按F列降序排序(见图14-9)

图14-9:女性观众top榜

14.2.1 测量评价分歧1.找到男性和女性观众之间最具分歧性的电影。

一种方法是添加一列到含有均值差的mean_ratings中,然后按以下方式排序(见图14-9、14-10)

图14-9:女性首选的评分差异电影排名

图14-10:男性首选的评分差异电影排名

2.假设你想要的是不依赖于性别标识而在观众中引起最大异议的电影。异议可以通过评分的方差或标准差来衡量(见图14-11)

图14-11:不依赖于性别标识异议最大的电影排名

注:电影流派是以管道分隔(|)字符串的形式给出的。如果你想按流派做一些分析,需要做更多的工作来将流派信息转化为更有用的形式

标签:14,14.2,Python,电影,MovieLens,评分,数据,pandas,见图

来源: https://blog.csdn.net/weixin_34174105/article/details/87231590

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值