万条票房数据看2019春节档各地影院表现
作者 |?量化小白H來源 | 量化小白上分記
今年春節檔全國共有8部影片上映,對于影片的對比分析已經非常多,孰優孰劣,每個人心里都有一桿秤,不再贅述。本文著重分析影片票房的地域差別,爬取了年后兩周各地萬余家影院的票房數據,一起來看看各地影院今年春節檔表現如何,非官方統計,數據一定不準確,看看就好。
1.數據說明分影院的票房數據來自中國票房網:http://www.cbooo.cn/cinemaday
網站提供日票房排行榜的前100名和周票房的前一萬余名,本文爬取包含更多樣本的周票房數據,取年后兩周的數據。
最終爬到的數據樣式如下,數據從左往右依次為影院名稱,當周票房、單熒幕票房、場均人次、單日單廳票房、單日單廳場次6個變量。
2.數據獲取使用python獲取數據,對于爬取過程不感興趣的可以直接看下部分,需要數據/代碼的請在后臺回復“票房”。
在數據頁面按F12打開開發者工具,選擇NetWork,XHR,刷新頁面后,依次點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春节档各地影院表现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Unreal Engine 4 —— G
- 下一篇: li标签中hover的使用及li标签的样