电影评分数据集的分析(案例一)

本文通过分析电影评分数据集,揭示了大数据在商业运营中的关键作用。使用观众、电影和评分数据,通过Python代码进行数据读取和整合,过程中遇到的编码问题及其解决方案,展示了数据预处理的重要性和挑战。虽然代码理解相对简单,但数据分析结论的得出需要深入研究。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大数据无处不在,在运营一个成功的商业的过程中,大数据起到的非常重要的作用。同样通过观众对电影的评分的分析,可以在一定程度上给电影行业启发。

评价电影数据链接:https://grouplens.org/datasets/movielens

  • 这个里面提供了大量的数据,在这里我选择的是到1998年的,你们可以选择其它年份的,点击红色框下载文件,由于数据很多,下载可能比较慢。
    在这里插入图片描述
  • 解压三个文件就可以了,分别是观众数据、电影数据、评分数据。这里有很多的数据。

在这里插入图片描述

  1. 观众的ID、年龄、性别、职业、邮编(这里是美国的邮编号码)不同的列通过竖线分割。
    在这里插入图片描述

  2. 每部电影都提供了电影的ID,名称,拍摄时间,上映时间,网址等,后面是0和1组成的19个列。

在这里插入图片描述

  1. data评分数据共有十万条,这也是为什么100T的原因。分别为观众的ID、电影的ID、评分值(1~5)、时间类型。

在这里插入图片描述
1.从观众中读取文件数据
提供代码如下:

import pandas as pd
'''
@Function:从观众中读取文件数据
@Author  :王育红
@Date2020/8/20
'''

#通过分割符'|',来表示每个列的对应的名称
unames = ['uid', 'age', 'gender', 'occupation', 'zip']
users = pd.read_table('d:\\park01\\ml-100k\\u.user', sep='|', header=None, names=unames)
#数据较多,采用取量读取,取前五条数据
#(第一种方法)
#print(users.head(5))
#(第二种方法)
print(users[:5])
  • 查看运行结果:
    在这里插入图片描述
    2.读取评分数据,连接观众数据
    提供代码如下:
import pandas as pd
'''
@Function:读取评分数据,连接观众数据
@Author  :王育红
@Date2020/8/20
'''

#通过分割符'|',来表示每个列的对应的名称
unames = ['uid', 'age', 'gender', 'occupation', 'zip']
users = pd.read_table('d:\\park01\\ml-100k\\u.user', sep='|', header=None, names=unames)

#通过分割符'table',来表示每个列的对应的名称
rnames = ['uid', 'mid', 'rating', 'timestamp']
ratings = pd.read_table('d:\\park01\\ml-100k\\u.data', sep='\t', header=None, names=rnames)

#连接观众和评分数据
frame = pd.merge(ratings,users)
#性别评分差异

print(frame['rating'].groupby(frame['gender']).mean())
print('======================================================')

#年龄评分差异,[-1]四点五人到十位
print(frame['rating'].groupby(frame['age'].apply(round,args=[-1])).mean())
print('======================================================')

#结合年龄段的性别
print(frame['rating'].groupby([frame['age'].apply(round,args=[-1]),frame['gender']]).mean())
  • 查看运行结果:
    在这里插入图片描述
    3.连接电影、评分、观众等数据进行分析
    在这里插入图片描述
    我们可以发现就算是所对应的文档和写的路径没有问题,但是还是报错了。这是因为数据集转换的问题,在处理中文信息,以及中国人在处理英文信息发生的,可以通过设置编码字符集来解决。

  • 一方面在python开发环境当中设置字符集
    在这里插入图片描述

  • 另一方面在代码中通过encoding指定标准字符集
    在这里插入图片描述

  • 提供代码如下

import pandas as pd

'''
@Function:连接观众,评分,电影数据进行分析
@Author  :王育红
@Date2020/8/20
'''

# 通过分割符'|',来表示每个列的对应的名称
unames = ['uid', 'age', 'gender', 'occupation', 'zip']
users = pd.read_table('d:\\park01\\ml-100k\\u.user', sep='|', header=None, names=unames)

# 通过分割符'table',来表示每个列的对应的名称
rnames = ['uid', 'mid', 'rating', 'timestamp']
ratings = pd.read_table('d:\\park01\\ml-100k\\u.data', sep='\t', header=None, names=rnames)

# 这里有19个,要对应到文档中
mnames = ['mid', 'title', 'date1', 'data2', 'url',
          'unknown', 'Action', 'Adventure', 'Animation',
          'Children', 'Comedy', 'Crime', 'Documentary', 'Drama',
          'Fantansy', 'Film-Noir', 'Horror', 'Musical',
          'Mystery', 'Romance', 'Sci-Fi', 'Thriller', 'War', 'Western']
movies = pd.read_table('d:\\park01\\ml-100k\\u.item', sep='|', header=None, names=mnames,encoding='ISO-8859-1')

# 连接三个数据
frame = pd.merge(pd.merge(ratings,users),movies)
# 按性别分析每部电影的平均评分
print(frame['rating'].groupby([frame['gender'],frame['title']]).mean().sort_values(ascending=False))

  • 查看运行结果:
    在这里插入图片描述

好啦~ 就分享这么多。▽****▽ 从开始写代码到最后,我觉得代码的理解还是比较容易,电影评分数据结论的分析方面有点很难。写代码时,还是不够细心,在groupby()函数中分两个组时,总是忘记写一个中括号,导致代码出错,花了很长时间排错。总而言之,这次写大数据电影分析的代码也有不少收获。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值