作者 | 量化小白H来源 | 量化小白上分记

今年春节档全国共有8部影片上映,对于影片的对比分析已经非常多,孰优孰劣,每个人心里都有一杆秤,不再赘述。本文着重分析影片票房的地域差别,爬取了年后两周各地万余家影院的票房数据,一起来看看各地影院今年春节档表现如何,非官方统计,数据一定不准确,看看就好。

1.数据说明

分影院的票房数据来自中国票房网:http://www.cbooo.cn/cinemaday

网站提供日票房排行榜的前100名和周票房的前一万余名,本文爬取包含更多样本的周票房数据,取年后两周的数据。

最终爬到的数据样式如下,数据从左往右依次为影院名称当周票房单荧幕票房场均人次单日单厅票房单日单厅场次6个变量。

2.数据获取

使用python获取数据,对于爬取过程不感兴趣的可以直接看下部分,需要数据/代码的请在后台回复“票房”。

在数据页面按F12打开开发者工具,选择NetWorkXHR,刷新页面后,依次点1,2,3,4页,接收到了一堆文件。

右键任意打开一个,显示如下(如果不是这种格式,说明你选错了)

是我们需要的数据,对比前后的变量关系,得到每个变量的含义。

再分析网址,从前面的截图能看出来,pindex后面跟的是页码,对页码进行循环就可以爬到所有的数据。dt = 1042看不出来什么意思,但改变日期范围重复上面的操作时,看到此时dt变成了1041,说明dt后面的值对应不同的日期范围。

我们的目标是爬取0204-0210,0211-0217两周的数据,获取对应的dt分别是1040和1041,最终代码如下

# -*- coding: utf-8 -*-
"""
Created on Fri Oct 19 18:50:03 2018"""
import urllib
import requests
from fake_useragent import UserAgent
import json
import pandas as pd
import time
import datetime# 发送get请求
comment_api = 'http://www.cbooo.cn/BoxOffice/getCBW?pIndex={}&dt={}'
"""
cinemaName:影院名称
amount:当周票房
avgPS:场均人次
avgScreen:单荧幕票房
screen_yield:单日单厅票房
scenes_time:单日单厅场次
"""headers = { "User-Agent": UserAgent(verify_ssl=False).random}#response_comment = requests.get(comment_api.format(1,1040),headers = headers)
#json_comment = response_comment.text
#json_comment = json.loads(json_comment)
col = ['cinemaName','amount','avgPS','avgScreen','scenes_time','screen_yield']dataall = pd.DataFrame()num = 1035
for i in range(1,num+1):response_comment = requests.get(comment_api.format(i,1041),headers = headers)json_comment = response_comment.textjson_comment = json.loads(json_comment)        n = len(json_comment['data1'])datas = pd.DataFrame(index = range(n),columns = col)for j in range(n):        datas.loc[j,'cinemaName'] = json_comment['data1'][j]['cinemaName']datas.loc[j,'amount'] = json_comment['data1'][j]['amount']datas.loc[j,'avgPS'] = json_comment['data1'][j]['avgPS']datas.loc[j,'avgScreen'] = json_comment['data1'][j]['avgScreen']datas.loc[j,'scenes_time'] = json_comment['data1'][j]['scenes_time']datas.loc[j,'screen_yield'] = json_comment['data1'][j]['screen_yield']dataall = pd.concat([dataall,datas],axis = 0)print('已完成 {}% !'.format(round(i/num*100,2)))time.sleep(0.5)dataall = dataall.reset_index()

得到的两周数据里,第一周包含11295个样本,第二周包含11375个样本,将两周数据按影院合并后,最终得到10193个样本。

data1 = data1.drop_duplicates()
data2 = data2.drop_duplicates()datas = pd.merge(data1,data2,left_on ='cinemaName',right_on = 'cinemaName').dropna()
datas = datas.reset_index(drop = True)dataall = datas[['cinemaName']]dataall['amount'] = datas['amount_x'] + datas['amount_y']
dataall['avgPS'] = (datas['avgPS_x'] + datas['avgPS_y'])/2
dataall['avgScreen'] = datas['avgScreen_x'] + datas['avgScreen_y']
dataall['screen_yield'] = (datas['screen_yield_x'] + datas['screen_yield_y'])/2
dataall['scenes_time'] = (datas['scenes_time_x'] + datas['scenes_time_y'])/2
dataall['avgprice'] = dataall.screen_yield/dataall.scenes_time/dataall.avgPS
dataall = dataall.dropna().reset_index(drop = True)

3.数据总览

先从各方面简单看看取到的数据。

票房TOP10影院

北京耀莱以860万的票房,远超第二名金逸北京的590万占据首位。并且票房前10名中,有5家都是北京的影院。

单变量分布

用单日单厅票房/单日单厅场次/场均人数估计平均票价,各个变量分布进如下

可以看出,所有变量都呈现尖峰右拖尾的特征,大部分值低于中位数,但也不乏高于均值的点,考虑到各个影院数据存在规模、地域等因素差异,这一结果就很正常了。

票房影响因素

1. 从上图看出,场均人次与单荧幕票房正相关,观影人数增多票房收入增加,符合常理。

2. 单日单厅场次与票房之间有先升后降的关系,换句话说,排片少时,增加每日排片能增加票房收入,但排片过于密集,反而不利于票房增加

3. 票价,场均人次与票房之间关系如图,颜色越深,表明票房越高。票价影响场均人次,过高和过低都会使票房收入减少,平均票价40-70区间内,影院票房收入更高,符合实际情况。

4.票房地域特征

粗略看过数据之后,我们分析地域因素对于票房的影响,虽然爬取的数据中没有直接给出影院的地域特征,但可以用影院名称提取地域位置,python里有一个基于jieba分词的地域查询包cpca,可以直接返回中文地址对应的省市县。

result = cpca.transform(dataall.cinemaName.tolist(),cut = False)
dataall['province'] = result['省']
dataall['city'] = result['市']

用cpca查询各个影院所在的省市,但这个包也不是非常完善,加上有的影院名称地址非常模糊,最终有7581个影院查询到了省市。

未查询到的部分影院如下,一部分是没有地域信息,只有影院名称,一部分有地域信息,可能过于生僻,未能匹配到,之后的分析中删掉没匹配到的这部分影院。

匹配到影院所在省份后,按省份汇总数据,分析各省票房。

各省票房

各地区票房存在明显差异,广东省票房收入最高,远超其他省份去,西藏票房最少。

接下来从各省影院数、场均人次、平均票价三方面来看各省差异。

影院数

最终获取的有地域信息的影院中,广东省有1088个影院,远远超出平均水平,这也可以解释为何广东省票房总数能排到第一,而西藏地区仅有13个影院,绝大部分地区影院在200上下浮动。

场均人次-平均票价

平均票价整体差异不大,40元左右波动,场均人次来看,北京天津最多,但最高最低值差异不超过30人,因此这两项因素对于票房的影响远不如影院数大。

各市票房分布

最后将票房按市进行统计,得到全国各市票房分布如下

图中标出了票房收入最高的5个市,分别是北京(3279万)、上海(3083万)、广州(2258万)、深圳(2205万)、成都(1856万)。

小编整理了作者的部分代码,后台回复“票房”可以获取

万水千山总是情,点个「好看」行不行。

◆ ◆ ◆  ◆ ◆

长按二维码关注我们


数据森麟公众号的交流群已经建立,许多小伙伴已经加入其中,感谢大家的支持。大家可以在群里交流关于数据分析&数据挖掘的相关内容,还没有加入的小伙伴可以扫描下方管理员二维码,进群前一定要关注公众号奥,关注后让管理员帮忙拉进群,期待大家的加入。

管理员二维码:

猜你喜欢

“史上最强春节档”来袭!数据解读值得看的影片是......

 支持小白原创  ☟

万条票房数据看2019春节档各地影院表现相关推荐

  1. 万条票房数据看2019春节档各地影院表现(附源码)

    点击上方 蓝色文字,选择置顶或星标 第一时间关注 Python 技术干货! 阅读文本大概需要 5 分钟. 今年春节档全国共有8部影片上映,对于影片的对比分析已经非常多,孰优孰劣,每个人心里都有一杆秤, ...

  2. 通过7万条视频数据看2019年B站鬼畜区发生了什么

    版权声明:未经作者允许,不得私自转载. 鬼畜就是通过对严肃正经话题进行解剖后通过重复,再创作等形式用以达到颠覆经典.解构传统.张扬个性.强化焦点.讽刺社会的一种艺术形式. --百度百科 前言 作为常年 ...

  3. 数据解读2019春节档哪部电影最值得看?

    作者:徐麟,目前就职于互联网公司数据部,哥大统计数据狗,从事数据挖掘&分析工作,喜欢用R&Python玩一些不一样的数据. 来源 | 数据森麟(ID:shujusenlin),知乎同名 ...

  4. 10193 条票房数据告诉你《流浪地球》领跑的电影档战果如何?

    作者 | 量化小白H 责编 | 郭芮 如何挑战百万年薪的人工智能! https://edu.csdn.net/topic/ai30?utm_source=csdn_bw 2019年的春节档已经过去了一 ...

  5. 2000万条直播数据,揭秘斗鱼主播生存现状

    作者 | 朱小五 来源 | 凹凸玩数据(ID:alltodata) 2019年7月17日游戏直播平台斗鱼在美国纳斯达克股票交易所成功上市,成为继虎牙直播之后第二家赴美上市的国内直播平台. 7月底斗鱼因 ...

  6. 从3万条豆瓣短评看《雷神3》

    哈喽大家好,为了北方神的荣耀,我是雷神托尔!! 没错,这次的雷神3又轰轰烈烈地回来啦,开开心心地奉上一张真诚的车票. 回归正题,新片上映大家的反响还是非常热烈的,这里就单从广大的豆瓣盆友的数据反馈进行 ...

  7. 500万条微博数据来源分析

    最近项目不是特别忙,想做一些微博方面的分析和处理工作,如果自己现爬取微博数据,积累数据比较慢,恰好看到北理工张华平老师分享的500万条微博数据,直接借用他的数据分析.下载地址是:http://www. ...

  8. 天猫双12爬虫(福利:266万条商品数据免费下载)

    前言: 继:<天猫双11爬虫(福利:212万条商品数据免费下载)>. 天猫双12商品原始数据\color{red}{天猫双12商品原始数据} 链接:http://pan.baidu.com ...

  9. LLM-2023:Alpaca(羊驼)【Stanford】【性能与GPT3.5相当比GPT4逊色,训练成本不到100美元,基于LLaMA和指令微调,仅使用约5万条训练数据就能达到类似GPT-3.5】

    斯坦福的 Alpaca 模型基于 LLaMA-7B 和指令微调,仅使用约 5 万条训练数据,就能达到类似 GPT-3.5 的效果. 斯坦福70亿参数开源模型媲美GPT-3.5,100美元即可复现​mp ...

  10. 天猫双11爬虫(福利:212万条商品数据免费下载)

    2016年12月12日更新:<天猫双12爬虫(福利:266万条商品数据免费下载)> 背景: 2016年11月11日,中午刷了一下天猫,突然来了兴致想要把天猫上参与双11活动的商品都爬下来. ...

最新文章

  1. 逼学生作弊的AI阅卷老师
  2. Cant find model en_core_web_sm
  3. 实验八 《Coderxiaoban团队》团队作业4:基于原型的团队项目需求调研与分析
  4. 浏览器自动化的一些体会8 访问angular页面的一个问题
  5. Java–cvc-complex-type.4:Attribut ‘version’ must appear on element ‘web-app’
  6. Cesium基础使用介绍
  7. 大数据技术全解之数据能力是核心竞争力
  8. AppFabric 1.1: installation error 错误代码 1603 windows server 2016 sharepoint 2019 Preparation Tool
  9. hbase 二级索引方案
  10. easyUI设置行高
  11. 小细节见实力,告诉你vivo Z3如何成为爆款千元机
  12. 程序员吐槽_程序员在地铁上写代码被路人吐槽:有什么好装的!网友评论炸锅了!...
  13. 扫描仪软件测试自学,资讯详情-静态代码扫描工具 - sonarQube-柠檬班-自动化测试-软件测试培训-自学官网...
  14. Redis 位图数据结构介绍
  15. unix 时间戳 c语言,C语言实现字符转unix时间戳
  16. 服务器CPU跑满了怎么办
  17. Hadoop 部署之 Hadoop (三)
  18. glu 、glut 、freeglut与glew 作用
  19. centos 开机选完 grub 后左上角一个 _ 还一直闪屏
  20. 漫话电子配线架的定义

热门文章

  1. 读书随笔(6)密码恢复
  2. HTML5-坦克大战一完成坦克上下左右移动的功能(一)
  3. EEG多元模式分析预测慈善捐赠行为
  4. discuz template 模板文件说明
  5. 凝思磐石linux系统怎么切双屏_linux系统下怎么设置双屏拼接
  6. vue-router 详解
  7. 形而上者谓之道,形而下者谓之器(java 多态、泛型)
  8. ei指什么_什么是EI?
  9. Windows10超级管理员账号权限受限的问题
  10. VS2019企业版密钥