数据分析---《哪吒之魔童降世》

一、前言

  最近上映的电影中,最大的票房黑马无疑就是国漫《哪吒之魔童降世》了。自其7月26日上映以来,票房疯涨,好评不断。截止8月20日,累计票房43.25亿。于是我爬取了猫眼的评论数据,对其进行简单的数据分析。

数据来源:猫眼电影
使用工具:pandas	matplotlib 	pyecharts	wordcloud

二、数据分析

  因为使用Pyecharts 1.0版,只支持Python3.6环境。且在JupyterLab上工作,需要设置一些额外参数。具体使用见Pyecharts官网

1.引包

import pandas as pd
import pyecharts
from pyecharts.globals import CurrentConfig, NotebookType
CurrentConfig.NOTEBOOK_TYPE = NotebookType.JUPYTER_LAB
from pyecharts import options as opts
from pyecharts.charts import Page, Pie,Bar
import jieba
from wordcloud import WordCloud
import matplotlib.pyplot as plt
%matplotlib inline

2.读取数据

  截止8月14日,抓取了猫眼评论近58万数据,数据维度包含性别、城市、评分以及评论内容。链接:https://pan.baidu.com/s/1hFAwzeCj0HCGroUGiNU0iA 提取码:um60

>>> df = pd.read_csv("1211270.csv")
>>> df.shape
(578760, 7)

>>> df.head()

在这里插入图片描述

3.数据分析

① 性别差异
>>> gender = df.groupby("性别")["昵称"].count().reset_index()
>>> gender.columns=["性别",'数量']
>>> gender
   性别	 数量
0	0	251373
1	1	148054
2	2	176611

其中,0是性别未填写,1是性别男,二是性别女。使用饼图进行可视化(1.在第一次渲染的时候调用 load_javascript() 会预先加载基本 JavaScript 文件到 Notebook 中.2.load_javascript() 和 render_notebook() 方法需要在不同的 cell 中调用.)

>>> data = [["未知",251373],["男",148054],["女",176611]]
>>> pie = Pie().add("",data).set_global_opts(title_opts=opts.TitleOpts(title="性别分布差异")).set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
>>> pie.load_javascript()
>>> pie.render_notebook()

在这里插入图片描述
  从评论性别分布数据可以看出,有不到一半的人不愿透露性别,从已知性别的这部分人来看,观影男女比例约为1:1,女性稍高一些但不多。

② 城市分布

  选取观影人数前二十的热门城市作为数据展示。

>>> city_rank = df.groupby("城市")["昵称"].count().reset_index().sort_values(by="昵称",ascending=False)[:20]
>>> city_rank

在这里插入图片描述

# 添加横轴、纵轴数据
>>> b = Bar().add_xaxis(list(city_rank["城市"])).add_yaxis("城市",list(city_rank["昵称"]))
# 设置主标题,副标题
>>> b.set_global_opts(title_opts=opts.TitleOpts(title="城市分布",subtitle="来源:猫眼电影")) 
># 反转横纵轴
>>> b.reversal_axis().set_series_opts(label_opts=opts.LabelOpts(position="right"))
>>> b.render_notebook()

在这里插入图片描述
  前五名依旧是熟悉的“北上广深”,因为影片中出现的四川话,可能导致成都、重庆等四川地域观影人数较为靠前。

③ 评分

评分数据,0分最低,5分最高

>>> score = df.groupby("评分")["昵称"].count().reset_index()
>>> score.columns=["评分","数量"]
>>> score

>>> list=[]
>>> for k,v in zip(score["评分"],score["数量"]):
    	list.append([k,v])
>>> c= Pie().add("",list,radius=["40%", "75%"])
>>> c.set_global_opts(title_opts=opts.TitleOpts(title="评分分布图"), legend_opts=opts.LegendOpts(orient="vertical", pos_top="15%", pos_left="2%"))
>>> c.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
>>> c.render_notebook()

在这里插入图片描述
  从图中可以明显看出,绝大多数人都给了5分,占了总人数的84%。三分及三分以下的人占了2.15%。可以看出这部影片真的非常受到大众的喜欢!

④ 评论词云
>>> comments = df[df["评论内容"].notnull()]["评论内容"].values.tolist()
>>> words =",".join(comments)
>>> key = jieba.cut(words, cut_all=False)
>>> keys = " ".join(key) # 列表转字符串
>>> mask = plt.imread("哪吒.jpeg")	# 背景图
>>> my_wordcloud = WordCloud(background_color="white",width=1000,height=860,font_path="simsun.ttf",mask=mask).generate(keys)
# 展示词云图
>>> plt.imshow(my_wordcloud)
>>> plt.axis("off")
>>> plt.show()

在这里插入图片描述
可以看出,“好看”出现次数是最多的,其他类如“国漫”、“国产”频次也较高。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值