前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python对电影Top250并进行数据分析

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

作者头像
北山啦
发布2022-11-27 11:45:59
4700
发布2022-11-27 11:45:59
举报
文章被收录于专栏:北山啦的博客

由于CSDN审核机制,导致原文章无法发出,故修改了相关词汇,并改为两篇问章发布。

数据分析

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

数据预处理

代码语言:javascript
复制
df = pd.read_excel("Top250.xlsx",index_col=False)
df.head()
  • 上映年份格式不统一
代码语言:javascript
复制
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]

上映年份分布

代码语言:javascript
复制
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("1.html")
)

在这里插入图片描述
在这里插入图片描述
  • 这里可以看出电影TOP250里,电影的上映年份,多分布于80年代以后。其中有好几年是在10部及以上的。
  • 从年份的分布情况看,大部分高分电影都上映在 1987 年之后,并且随着时间逐渐增加,而近两年的高分电影的数量相对比较少。

评分分布情况

代码语言:javascript
复制
plt.figure(figsize=(10,6))
plt.hist(list(df["评分"]),bins=8,facecolor="blue", edgecolor="black", alpha=0.7)
plt.show()

在这里插入图片描述
在这里插入图片描述
  1. 从上图分析,随着评分升高,排名也基本靠前,评分主要集中在 8.4~9.2 之间。同时可以通过 pandas 计算平均数,众数和相关系数,平均分为 8.83 分,众数为 8.7 分,而相关系数为 -0.6882,评分与排名强相关。
  2. 大多分布于「8.5」到「9.2」之间。最低「8.3」,最高「9.6」

排名与评分分布情况

代码语言:javascript
复制
plt.figure(figsize=(10,5), dpi=100)
plt.scatter(df.index,df['评分'])
plt.show()

在这里插入图片描述
在这里插入图片描述

总的来说,排名越靠前,评价人数越多,并且分数也越高。

评论人数TOP10

代码语言:javascript
复制
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("2.html")
)

在这里插入图片描述
在这里插入图片描述

让我们来看看人气最高的有哪些影片,你又看过几部呢?

导演排名

在这里插入图片描述
在这里插入图片描述

可以看到这些导演很🐂呀


电影类型图

代码语言:javascript
复制
from collections import Counter
colors = ' '.join([i for i in df[ '类型']]).strip().split()
c = dict(Counter(colors))
c
在这里插入图片描述
在这里插入图片描述

发现有个错误值

代码语言:javascript
复制
d = c.pop('1978(中国大陆)')

删除即可

  • 对于删除字典的值有以下方法

方法一 pop(key[,default])

代码语言:javascript
复制
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]]

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

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

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

统计展示

在这里插入图片描述
在这里插入图片描述

可视化展示

代码语言:javascript
复制
c = (
    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("wordcloud_custom_font_style.html")
)
## https://blog.csdn.net/qq_45176548/article/details/112735850

就可以清楚的看到,Top250的电影的类别

在这里插入图片描述
在这里插入图片描述

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-11-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 数据分析
    • 数据预处理
      • 上映年份分布
        • 评分分布情况
          • 排名与评分分布情况
            • 评论人数TOP10
              • 导演排名
                • 电影类型图
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档