Python对电影Top250并进行数据分析 您所在的位置:网站首页 红包电影翻拍 Python对电影Top250并进行数据分析

Python对电影Top250并进行数据分析

2024-01-12 08:46| 来源: 网络整理| 查看: 265

由于CSDN审核机制,导致原文章无法发出,故修改了相关词汇,并改为两篇问章发布。数据获取的链接:https://blog.csdn.net/qq_45176548/article/details/127735268

文章目录 数据分析数据预处理上映年份分布评分分布情况排名与评分分布情况评论人数TOP10导演排名电影类型图

数据分析

获取数据后,就可以对自己感兴趣的内容进行分析了

数据预处理 from matplotlib import pyplot as plt import pandas as pd df = pd.read_excel("Top250.xlsx",index_col=False) df.head() 上映年份格式不统一 year = [] for i in df["上映年份"]: i = i[0:4] year.append(i) df["上映年份"] = year df["上映年份"].value_counts() x1 = list(df["上映年份"].value_counts().sort_index().index) y1 = list(df["上映年份"].value_counts().sort_index().values) y1 = [str(i) for i in y1] 上映年份分布

最后的.render('.html')会创建一个html的文件,图表就在其中,如果你在jupyter下运行的代码,可以改为.render_notebook()

from pyecharts import options as opts from pyecharts.charts import Bar from pyecharts.faker import Faker c1 = ( Bar() .add_xaxis(x1) .add_yaxis("影片数量", y1) .set_global_opts( title_opts=opts.TitleOpts(title="Top250年份分布"), datazoom_opts=opts.DataZoomOpts(), ) .render("上映年份.html") ) c1

在这里插入图片描述

这里可以看出电影TOP250里,电影的上映年份,多分布于80年代以后。其中有好几年是在10部及以上的。

从年份的分布情况看,大部分高分电影都上映在 1987 年之后,并且随着时间逐渐增加,而近两年的高分电影的数量相对比较少。

评分分布情况 plt.figure(figsize=(10,6)) plt.hist(list(df["评分"]),bins=8,facecolor="blue", edgecolor="black", alpha=0.7) plt.show()

在这里插入图片描述

从上图分析,随着评分升高,排名也基本靠前,评分主要集中在 8.4~9.2 之间。同时可以通过 pandas 计算平均数,众数和相关系数,平均分为 8.83 分,众数为 8.7 分,而相关系数为 -0.6882,评分与排名强相关。

大多分布于「8.5」到「9.2」之间。最低「8.3」,最高「9.6」

排名与评分分布情况 plt.figure(figsize=(10,5), dpi=100) plt.scatter(df.index,df['评分']) plt.show()

在这里插入图片描述 总的来说,排名越靠前,评价人数越多,并且分数也越高。

评论人数TOP10 df1 = df.sort_values(by="评价分数",ascending=False).head(10) c2 = ( Bar() .add_xaxis(df1["电影名称"].to_list()) .add_yaxis("评论数", df1["评价分数"].to_list(),color=Faker.rand_color()) .reversal_axis() .set_series_opts(label_opts=opts.LabelOpts(position="right")) .set_global_opts(title_opts=opts.TitleOpts(title="电影评论Top10")) .render("评论人数TOP10.html") ) c2

在这里插入图片描述 让我们来看看人气最高的有哪些影片,你又看过几部呢?

导演排名

在这里插入图片描述 可以看到这些导演很🐂呀

电影类型图 from collections import Counter colors = ' '.join([i for i in df[ '类型']]).strip().split() c = dict(Counter(colors)) f = zip(c.keys(), c.values()) words = sorted(f) print(c)

在这里插入图片描述 发现有个错误值,1978(中国大陆),删除即可

d = c.pop('1978(中国大陆)') my_df = pd.DataFrame(c,index=['数量']).T.sort_values(by='数量',ascending=False) my_df 数量剧情184喜剧55爱情55冒险44犯罪43奇幻39动画34惊悚34动作33悬疑31科幻22家庭22战争16传记15古装9历史8同性8音乐7歌舞5儿童5武侠4纪录片4西部3灾难2情色2恐怖2运动1

题外话:对于删除字典的值有以下方法

方法一 pop(key[,default])

d = {'a':1,'b':2,'c':3} # 删除key值为'a'的元素,并赋值给变量e1 e1 = d.pop('a') print(e1) # 如果key不存在,则可以设置返回值 e2 = d.pop('m','404') print(e2) # 如果key不存在,不设置返回值就报错 e3 = d.pop('m')

方法二 del[d[key]]

d = {'a':1,'b':2,'c':3} # 删除给定key的元素 del d['a'] print(d) # 删除不存在的元素 del d['m']

clear一次性删除所有字典元素

d = {'a':1,'b':2,'c':3} print(d) # 删除所有元素,允许d为{} d.clear() print(d)

题外话结束,分割

统计展示,

在这里插入图片描述

绘制词云图

c3 = ( WordCloud() .add( "", words, word_size_range=[20, 100], textstyle_opts=opts.TextStyleOpts(font_family="cursive"), ) .set_global_opts(title_opts=opts.TitleOpts(title="WordCloud-自定义文字样式")) .render("电影类型词云图.html") ) c3 ## https://blog.csdn.net/qq_45176548/article/details/112735850

就可以清楚的看到,Top250的电影的类别 在这里插入图片描述

到这里就结束了,如果对你有帮助,欢迎点赞关注评论,你的点赞对我很重要



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有