丧尸电影数据分析:观看评分、评价数与电影受欢迎度的关系(含源码)

目录

引言

数据概览

数据预处理

评分分布情况

评分数与评分分析

年份与评分分析

结论

附录:完整代码


引言

近来,丧尸题材的电影一直在全球范围内受到观众的热爱。通过网络电影评分平台,可以挖掘出很多有趣的信息,探讨电影评分、评价数以及影片内容之间的关系。将通过对一组丧尸电影数据的分析,探索分配评分、评价数与评分关系的,以及电影上映年份的影响。

数据概览

数据源:僵尸电影数据

本文的数据来源于网络电影平台,包含了一些部丧片电影的评分、评价数等信息。以下是数据集的目标字段:

  • 标题:电影名称
  • 评分:用户给出的评分(1-10分)
  • 评价数:参与评分的用户数量
  • 年份:电影上映年份

通过这些字段,可以进行基本的统计分析和一些可视化,了解丧尸电影的整体评分趋势以及受欢迎程度。

数据预处理

在进行数据分析之前,对数据进行了预处理,主要步骤包括:

  1. 列名修改:为了方便分析,将原始列名修改为更易懂的名称。
  2. 抓取值处理:从标题中将电影的上映年份提取出来;对于评分数据,采用均值填充;对于评价数为空的数据,使用0填充。
  3. 过滤无效数据:删除包含无效评价数(如“(尚未上映)”或“(暂无评分)”)的电影。
  4. 数据类型转换:将评价数转换为整数类型,并从电影标题中提取上映年份信息,转换为整数类型。
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

# 设置中文字体
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']  # 使用微软雅黑字体
plt.rcParams['axes.unicode_minus'] = False  # 解决符号乱码问题

# 加载数据
df = pd.read_excel('./丧尸电影.xlsx')

# 修改列名
df = df.rename(columns={'rating_nums': '评分'})

# 截取有效数据
df = df[['标题', '评价数', '评分']]

# 填充或删除缺失值
df['评分'] = df['评分'].fillna(df['评分'].mean())
df['评价数'] = df['评价数'].fillna(0)

# 过滤无效数据
df = df[~df['评价数'].isin(['(尚未上映)', '(暂无评分)'])]

# 删除空白行
df = df.dropna()

# 处理评价数字段,并转类型
df['评价数'] = df['评价数'].str.split("(").str[1].str.split("人").str[0]
df['评价数'] = df['评价数'].astype('int')

# 处理年份字段,并转类型
df['年份'] = df['标题'].str.split("(").str[1].str.split(")").str[0]
df['年份'] = df['年份'].astype('int')

# 排序数据
df = df.sort_values(by=['年份', '评分'], ascending=[False, False])

评分分布情况

首先,对丧尸电影的评分进行分布分析,了解评分的集中程度及分布情况。通过直方图,可以观察到评分在什么范围内的集中程度,是否存在明显的偏差。

# 评分分布分析
sns.histplot(df['评分'], kde=True)
plt.title('丧尸电影评分分布')
plt.xlabel('评分')
plt.ylabel('频数')
plt.show()

分析结果:通过评分分布图,发现大部分评分集中在6-7分之间,表明大部分丧片的观众对影片的评分中等偏下,少数影片的评分较低。

评分数与评分分析

接下来,通常探讨评价数与评分之间的关​​系的情况下,评价数基线的电影可能会有更准确的评分关系。通过散点图,能够判断评价数与评分之间的关​​系可能存在的潜在影响。

# 评价数与评分关系
sns.scatterplot(x='评价数', y='评分', data=df)
plt.title('评价数与评分关系')
plt.xlabel('评价数')
plt.ylabel('评分')
plt.show()

分析结果:散点图显示出评价数较高的电影主要集中在评分较高的区域,但也有少数电影评价数多但评分较低。这说明,评价数较多的电影往往得到了较为准确的评分,但并不是所有高评价电影都能获得高分。

年份与评分分析

通过分析电影的上映年份与评分的关系,能够了解丧尸电影在不同年代的评分变化趋势。这对于预测未来丧尸电影的受欢迎程度具有一定的参考价值。

# 评分随年份变化的趋势
sns.lineplot(x='年份', y='评分', data=df, markers=True)
plt.title('丧尸电影评分随年份变化趋势')
plt.xlabel('年份')
plt.ylabel('评分')
plt.show()

分析结果:从评分随年份变化的趋势图来看,丧尸电影在近几年内的评分有所波动,但整体呈现出逐渐下降的趋势。这表明随着丧尸电影题材的调整和制作质量的变化,观众对丧尸电影的评价逐步降低。

结论

通过对丧尸电影数据的分析,得出了一些有趣的结论:

  1. 评分分配:大部分丧片的评分集中在6-7分之间,少数电影的评分较低。
  2. 评价数与评分关系:评价数分区的电影通常有不太准确的评分,但也不乏高评价数却评分较低的电影。
  3. 年份影响:近几年上映的丧尸电影评分有所下降,表明该类型电影的质量在不断下降。

未来的分析可以考虑更多的因素,例如电影的详细类型、导演、演员等,以进一步深入挖掘影响电影评分的各种因素。

附录:完整代码

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

# 数据加载与预处理
df = pd.read_excel('./丧尸电影.xlsx')

df = df.rename(columns={'rating_nums': '评分'})

df = df[['标题', '评价数', '评分']]

df['评分'] = df['评分'].fillna(df['评分'].mean())

df['评价数'] = df['评价数'].fillna(0)

df = df[~df['评价数'].isin(['(尚未上映)', '(暂无评分)'])]

df = df.dropna()

df['评价数'] = df['评价数'].str.split("(").str[1].str.split("人").str[0]
df['评价数'] = df['评价数'].astype('int')

df['年份'] = df['标题'].str.split("(").str[1].str.split(")").str[0]
df['年份'] = df['年份'].astype('int')

df = df.sort_values(by=['年份', '评分'], ascending=[False, False])

# 评分分布分析
sns.histplot(df['评分'], kde=True)
plt.title('丧尸电影评分分布')
plt.xlabel('评分')
plt.ylabel('频数')
plt.show()

# 评价数与评分关系
sns.scatterplot(x='评价数', y='评分', data=df)
plt.title('评价数与评分关系')
plt.xlabel('评价数')
plt.ylabel('评分')
plt.show()

# 评分随年份变化的趋势
sns.lineplot(x='年份', y='评分', data=df, markers=True)
plt.title('丧尸电影评分随年份变化趋势')
plt.xlabel('年份')
plt.ylabel('评分')
plt.show()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值