基于猫眼票房数据的可视化分析

在这里插入图片描述
案例背景:由于最近《哪吒之魔童降世》的火爆,最新票房已经超过49亿,使我对国内票房的整体走势有了很大兴趣,究竟49亿的票房数据,在国内是处于一个什么水平?除了票房数据,又有哪些特征因素可以用来形容一部优秀的影片呢?因此,笔者通过抓取近三年的猫眼票房数据,通过可视化分析的方式,直观地展示国内影片票房的概况。
在这里插入图片描述
首先,抓取了从20170101至20190919的每日票房数据,票房可分为综合票房和分账票房,两者区别在于综合票房包含了电商服务费,而分账票房是不包含的。通常媒体报道采用的都是综合票房,如《哪吒》49亿票房,指的就是综合票房。所以,分账票房的相关字段对于此次的分析并没有用处,进行了剔除。其中,上座率即上座人数与总座位数的比值。
图片
其次,由于影片上映类型包含上映、点映、展映、重映和零点这六种类型,综合票房只统计点映和上映的票房。所以,需要剔除其它类型的影片数据。
在这里插入图片描述
最后,由于抓取的数据是按日汇总的,需要以每部影片作为唯一标识进行汇总,将汇总后的字段直接追加到原始数据集(正常的处理过程是将清单级和统计级作为两个表存放,由于后面的可视化需要用到清单级数据,为了方便直接存放在同一个数据集中)。此外,由于后期影片的排片通常会非常低,从而导致影响平均上座率的数值,因此只提取每部影片前50%的上座率数据计算均值。
在这里插入图片描述
将处理后的数据划分为整体概况、票房影响因素、影片票房TOP5和最近一周电影排行榜TOP10这四个模块,通过绘制成不同的图表,来观察数据的分布情况。首先从整体概况上可知,从2017年至今已经新上映了1117部影片,大致每年是400部左右。将票房划分成六个层级,可以看到绝大部分票房都集中在10亿以下,50亿以上的只有一部,超过30亿的有6部。所以高票房影片数量并不是很多。再从时间维度来观察每年的票房分布情况,并没有太大的意外发现,基本每年的峰值都是出现在2、3月,8月以及10月,刚好对应国内的春节,暑期和国庆这三个大长假。

在这里插入图片描述

票房影响因素包括:档期类型、上映天数、观影人数、排片、上座率以及票价这六个因素,将每个因素都划分成五个层级,按照层级高低顺序,用柱状图进行展示。

档期类型:暑期档指每年7月和8月上映,春节档指1月和12月上映,贺岁档泛指2月上映,国庆档泛指10月上映。如果严格按照一定时间范围的话,每个档期上映的影片数量并没有太大差异。

上映天数:大部分影片上映三十天以内就会下架,也有少部分影片上映天数在70天以上。

观影人数:大部分影片低于10万人数,也有40部影片观影人数超过3000万。

排片场次:绝大多数影片排片低于10万,少部分超过200万,甚至高于300万。

上座率:绝大多数影片上座率低于10%,有部分高于30%。不过在计算上座率的均值过程中笔者发现,票房高的影片,平均上座率并不是很高,集中在15%-30%之间。而票房低,排片少的影片,会有50%以上上座率,如《三流勇士》只有上映了一天的票房数据,《大唐风云2》的排片和票房占比都低于0.1%,却后期每场都有100%的上座率。所以,单纯以上座率来衡量一部影片并不是准确的。

票价:几乎所有影片票价都是在21-40元之间。

在这里插入图片描述

基于以上票房影响因素的分布情况,列举了票房TOP5的名单,依次是《战狼2》56.82亿,《哪吒之魔童降世》49.09亿,《流浪地球》46.42亿,《复仇者联盟4》40.5亿,《红海行动》36.49亿。其中《战狼2》是国内唯一一部票房超过50亿的影片。

由于《哪吒之魔童降世》已经确定延迟下架时间,所以这几部国内高票房影片的上映天数都是超过70天。而《复仇者联盟4》只上映了31天,前三名的国产片观影人数都超过了1亿,最少的复联4也有830万,相信很多观影爱好者都看了很多遍,贡献了不少票房。此外,有2部在暑期档上映,2部在贺岁档,唯一一部国外影片是在非特定档期上映的。

目前《哪吒之魔童降世》的排片已经超过563万,高于票房第一位的《战狼2》145万场次,可见这部影片的受欢迎程度有多高。由于非节假日期间,影片的上座率都明显下降很多,导致这五部影片的平均上座率只在16%-25%之间。相比其余四部国产片,作为漫威宇宙终结篇的复联4排片占比高达65.11%,说明上映的这31天,几乎每天影院大部分时间段都排了这部影片,同时票房占比高达78.43%,代表每天的票房中复联4都贡献了八成,其余影片加起来的票房只占了两成。

所以,影响一部影片票房的因素,除了影片本身的题材,演员阵容和口碑外,上映天数和上映时间节点也是很重要的因素。例如复联4能延长上映天数,或者上映时间选择节假日,说不定票房至少会超过50亿。

在这里插入图片描述

最后,再通过一个排行榜看看9月13-19号影院最新热门影片有哪些。连续一周榜首都是《诛仙1》,《小小的愿望》从第3升到第2,看来小鲜肉主演的影片也是蛮受大家欢迎的嘛~~

粉丝福利

福利:如果你对Python感兴趣,小编便准备了这套python学习资料

对于0基础小白入门:

如果你是零基础小白,想快速入门Python是可以考虑的。
一方面是学习时间相对较短,学习内容更全面更集中。 二方面是可以找到适合自己的学习方案

包括:Python永久使用安装包、Python web开发,Python爬虫,Python数据分析,人工智能、机器学习等学习教程。带你从零基础系统性的学好Python!

零基础Python学习资源介绍

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

二、Python学习软件

工欲善其事,必先利其器。学习Python常用的开发软件都在这里了!
在这里插入图片描述

三、Python入门学习视频

还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~在这里插入图片描述

四、Python练习题

每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!
在这里插入图片描述

五、Python实战案例

光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。这份资料也包含在内的哈~在这里插入图片描述

六、Python面试资料

我们学会了Python之后,有了技能就可以出去找工作啦!下面这些面试题是都来自阿里、腾讯、字节等一线互联网大厂,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
在这里插入图片描述
在这里插入图片描述

七、资料领取

上述完整版Python全套学习资料已经上传CSDN官方,需要的小伙伴可自行微信扫描下方CSDN官方认证二维码输入“领取资料”免费领取!!

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一些Python库和步骤,可以用于电影票房数据分析与可。 ### 1. 数据获取与处理 可以通过爬取电影票房数据的网站(如猫眼电影、豆瓣电影等)来获取数据。也可以从公开的数据集中获取数据(如Kaggle上的电影数据集)。 获取到数据后,需要进行数据清洗和处理,如去除重复数据、缺失值处理等。可以使用Pandas库进行数据处理和清洗工作。 ```python import pandas as pd # 读取CSV数据文件 data = pd.read_csv('movie_data.csv') # 去除重复数据 data.drop_duplicates(inplace=True) # 处理缺失值 data.fillna(0, inplace=True) ``` ### 2. 数据分析 进行数据分析前,需要先了解数据的基本情况和特征。可以使用Pandas库提供的一些基本统计函数,如describe()、mean()、median()等来获取数据的基本信息。 ```python # 查看数据基本信息 print(data.info()) # 查看数据描述性统计信息 print(data.describe()) # 查看数据前5行 print(data.head()) ``` 在对数据进行分析时,可以根据问题需求,选择合适的统计方法和可方式。以下是一些常用的统计方法和可工具: - 统计方法:计数、求和、平均、中位数、方差、协方差、相关系数等。 - 可工具:Matplotlib、Seaborn、Plotly等。 ### 3. 数据 使用Matplotlib库进行数据,可以制作直方图、散点图、折线图、饼图等。 ```python import matplotlib.pyplot as plt # 绘制票房数据直方图 plt.hist(data['box_office'], bins=20) plt.title('Box Office') plt.xlabel('Box Office (Million)') plt.ylabel('Frequency') plt.show() # 绘制票房与评分散点图 plt.scatter(data['rating'], data['box_office']) plt.title('Box Office vs Rating') plt.xlabel('Rating') plt.ylabel('Box Office (Million)') plt.show() # 绘制不同年份电影数量折线图 year_count = data.groupby('year')['title'].count() plt.plot(year_count.index, year_count.values) plt.title('Movie Count by Year') plt.xlabel('Year') plt.ylabel('Movie Count') plt.show() ``` 使用Seaborn库进行数据,可以制作热力图、箱线图、条形图、密度图等。 ```python import seaborn as sns # 绘制票房与评分箱线图 sns.boxplot(x='rating', y='box_office', data=data) plt.title('Box Office vs Rating') plt.xlabel('Rating') plt.ylabel('Box Office (Million)') plt.show() # 绘制不同地区电影数量条形图 region_count = data['region'].value_counts() sns.barplot(x=region_count.index, y=region_count.values) plt.title('Movie Count by Region') plt.xlabel('Region') plt.ylabel('Movie Count') plt.show() # 绘制票房密度图 sns.kdeplot(data['box_office']) plt.title('Box Office Density') plt.xlabel('Box Office (Million)') plt.show() ``` 使用Plotly库进行数据,可以制作交互式图表,如散点图、热力图、地图等。 ```python import plotly.graph_objs as go import plotly.offline as pyo # 绘制票房与评分散点图(交互式) trace = go.Scatter(x=data['rating'], y=data['box_office'], mode='markers') layout = go.Layout(title='Box Office vs Rating', xaxis={'title': 'Rating'}, yaxis={'title': 'Box Office (Million)'}) fig = go.Figure(data=[trace], layout=layout) pyo.plot(fig) # 绘制不同地区电影数量地图(交互式) region_count = data['region'].value_counts() data_map = [go.Choropleth( locationmode='country names', locations=region_count.index, z=region_count.values)] layout_map = go.Layout(title='Movie Count by Region') fig_map = go.Figure(data=data_map, layout=layout_map) pyo.plot(fig_map) ``` 以上是一些基本的数据分析和可方法,可以根据具体需要进行更加详细的分析和可

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值