• 分析目的:

1)各类型的电影数量,随时间变化趋势如何,盈利情况如何,产区  
     2)原创电影与改编电影的平均盈利,
     3)电影票房的相关因素

  • 数据探索

1)数据读取(链接:https://pan.baidu.com/s/1Qk_QCFNESvJd3m7Xkg-FAw  提取码:8r08 )

#导入使用的模块
import pandas as pd
import numpy as np
import json
import matplotlib
from matplotlib import pyplot as plt
import seaborn as sns#读取数据
df_m=pd.read_csv(open(r"C:\Users\angella.li\Desktop\案例\电影赏析\tmdb_5000_movies.csv",encoding='utf-8'))
df_c=pd.read_csv(open(r"C:\Users\angella.li\Desktop\案例\电影赏析\tmdb_5000_credits.csv",encoding='utf-8'))#查看数据内容
print(df_m.head())
print(df_c.head())#根据相同字段,和合并两个数据,相同字段是电影ID
data_0=pd.merge(data_m,data_c,left_on='id',right_on='movie_id')#删掉不需要的字段
col=['homepage','id','original_title','overview','spoken_languages','status','tagline','movie_id','cast','crew','title_x']
data_1=data_0.drop(col,axis=1)
data_1.head()
data_1.info()

2)数据探索阶段1:缺失值处理

#缺失值查找
data_1.isnull().sum()
data_1.loc[data_1.release_date.isnull()==True]#缺失值替换,根据查找电影的时长和上映时间进行添加
data_1.release_date=data_1.release_date.fillna('2014',limit=1)
data_1.runtime=data_1.runtime.fillna(120,limit=1)
data_1.runtime=data_1.runtime.fillna(120,limit=1)

3)数据探索阶段2:修改格式

#把文本的时间改成年
data_1.release_date=pd.to_datetime(data_1.release_date,format='%Y-%m-%d').dt.year
data_1.info()
data_1.release_date.head()#把文本改成字典,字典提取关键值
json_column = ['genres','keywords','production_companies','production_countries']
for i in json_column:data_1[i]=data_1[i].map(json.loads)
def gettext(x):lis=[]for i in x:lis.append(i['name']return '|'.join(lis)
for i in json_column:data_1[i]=data_1[i].map(gettext)data_1.info()
  • 可视化阶段

1)电影的整体时间趋势和国家

sns.set(style='ticks')
f, ax= plt.subplots(figsize = (14, 10))
ax.set_title('The trend of films by year')
sns.distplot(data_1.release_date,ax=ax)
sns.kdeplot(data_1.release_date,shade=True)

data_country=set()
for i in data_1.production_countries:data_country.update(i.split("|"))
data_country.discard("")#去除空白
df_country=pd.DataFrame()
for i in data_country:df_country[i]=data_1.production_countries.str.contains(i).map(lambda x:1 if x else 0)
top10_country=df_country.sum().transpose().sort_values(ascending=False).head(10)top10_country
United States of America    3956
United Kingdom               636
Germany                      324
France                       306
Canada                       261
Australia                    110
Italy                         72
Spain                         71
China                         59
Japan                         58

2)从电影类型角度,着手考虑电影的发展,电影类型的数量占比,电影平均收益,改编小说和原创的收益对比和评分状况

genres_set=set()
for i in data_1['genres']:genres_set.update(i.split('|'))
genres_df=pd.DataFrame()
genres_set.discard("")
for i in genres_set:genres_df[i]=data_1['genres'].str.contains(i).map(lambda x:1 if x else 0)
genres_df['year']=data_1.release_date
genres_df.head(2)
year_genres=genres_df.groupby('year').sum()
year_genres.head()
genres_count=genres_df.drop('year',axis=1)xx=genres_count.sum().transpose()
type_name=list(xx.index)
type_qty=list(xx.values)
df_genres=pd.DataFrame()
df_genres['type_name']=type_name
df_genres['type_qty']=type_qty
df_genres=df_genres.sort_values('type_qty',ascending=False)
f,ax =plt.subplots(figsize=(14,6))
ax.set_title('genres')
sns.catplot(x='type_qty',y='type_name',kind='bar',color='b',edgecolor='.7',palette='BuGn_r',data=df_genres,ax=ax)

电影类型饼状图

genres_dfp=genres_df.drop(['year'],axis=1)
genres_dfp.head(2)
genres_tot=genres_dfp.sum().sort_values(ascending=True)
# genres_tot
others=(genres_tot[0:14]).cumsum()
others=others[13:14]
# genres_tot
others.rename(index={'Crime':'others'},inplace=True)
others
genres_t=pd.concat([genres_tot[14:21],others])
genres_t
plt.pie(genres_t,labels=genres_t.index,explode=[0,0,0,0,0,0,0.1],colors = ['black','Green','Grey','Orange','red','blue','yellow'],autopct='%1.1f%%')
plt.axis('equal')

电影平均收益

genres_profile=genres_df.drop('year',axis=1)
genres_profile['profile']=data_0.revenue-data_0.budget
genres_pro=pd.Series(index=genres_set)[1:21]
genres_set.discard('')
for i in genres_set:genres_pro[i]=genres_profile.groupby(i,as_index=False).profile.mean().loc[1,'profile']
genres_pro=genres_pro.transpose()
pro_name=list(genres_pro.index)
pro_values=list(genres_pro.values)
df_pro=pd.DataFrame()
df_pro['pro_name']=pro_name
df_pro['pro_values']=pro_values
df_pro=df_pro.sort_values('pro_values',ascending=False)f,ax =plt.subplots(figsize=(18,6))
ax.set_title('average profile')
sns.catplot(x='pro_name',y='pro_values',kind='bar',palette='GnBu_r',data=df_pro,ax=ax)

#原创和改编

novel_df=pd.DataFrame()
novel_df['budget']=data_1.budget
novel_df['revenue']=data_1.revenue
novel_df['type']=data_1.keywords.str.contains('based on novel').map(lambda x:1 if x else 0)
list_count=novel_df.groupby('type').budget.count()
novel_df1=novel_df.groupby('type').mean()
novel_df1['profile_rate']=novel_df1.revenue/novel_df1.budget
novel_df1['count']=list_count
novel_df1.rename(index={0:'origional',1:'recompose'},inplace=True)
novel_df1
  budget revenue profile_rate count
type        
origional 2.834872e+07 7.962815e+07 2.808880 4606
recompose 4.532546e+07 1.438100e+08 3.172831 197

3)电影票房相关

data_1[['budget','popularity','revenue','runtime','vote_average','vote_count']].corr()plt.rcParams['font.family']=['SimHei']
corr_revenue=data_1[['budget','popularity','revenue','vote_count']]
plt.subplot(1,3,1)
sns.regplot(x='budget',y='revenue',data=corr_revenue,x_jitter=.1,color='r')
plt.title('电影预算与票房关系',fontsize=14)
plt.text(0,2.5e09,'r=0.73',color='r',fontsize=12)plt.subplot(1,3,2)
sns.regplot(x='popularity',y='revenue',data=corr_revenue,x_jitter=.1,color='g')
plt.title('电影受欢迎程度与票房关系',fontsize=14)
plt.text(0,3.5e09,'r=0.64',color='g',fontsize=12)plt.subplot(1,3,3)
sns.regplot(x='vote_count',y='revenue',data=corr_revenue,x_jitter=.1,color='y')
plt.title('电影投票总数与票房关系',fontsize=14)
plt.text(0,2.45e09,'r=0.78',color='y',fontsize=12)

MTBD 电影市场分析相关推荐

  1. 2021-2025年中国电影行业市场供需与战略研究报告

    电影市场的企业竞争态势 该报告涉及的主要国际市场参与者有CBS Corporation.Sony Corporation.Disney.Time Warner.21st Century Fox.Via ...

  2. 全球及中国电影市场品牌建设发展及投资潜力预测报告2021-2027年

    全球及中国电影市场品牌建设发展及投资潜力预测报告2021-2027年 HS--HS--HS--HS--HS--HS--HS--HS--HS--HS--HS--HS-- [修订日期]:2021年10月 ...

  3. 我与CSDN的这十年——笔耕不辍,青春热血

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/Eastmount/article/de ...

  4. 用 Python 爬取分析每日票房数据

    ♚ 作者:小李子,某外企分析师,主要从事IT行业,但个人非常喜欢电影市场分析,所以经常会写一些电影领域的文章. 博客:http://blog.sina.com.cn/leonmovie 不知不觉又过了 ...

  5. 我与 CSDN 的这十年 | 程序员有话说

    作者 | Eastmount 责编 | 刘静 出品 | CSDN博客 十年, 说长不长,说短不短,人生进度条的八分之一,都是青春,都是热血.十年, 从看博客到写博客,笔耕不辍,从未停止.或许,对其他人 ...

  6. 电影屏幕行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)

    电影屏幕市场的企业竞争态势 该报告涉及的主要国际市场参与者有Da-Lite.Draper.Elite Screens.Epson.FAVI.InFocus.Open Air Cinema.Optoma ...

  7. 2021-2025年中国电影发行行业市场供需与战略研究报告

    电影发行市场的企业竞争态势 该报告涉及的主要国际市场参与者有Warner Bros..Sony Pictures Motion Picture Group.Walt Disney Studios.Un ...

  8. 2022-2028年中国数位板行业发展现状调查及市场分析预测报告

    报告类型:产业研究 报告格式:电子版.纸介版 出品单位:智研咨询-产业信息网 数位板,又名绘图板.绘画板.手绘板等等,是计算机输入设备的一种,通常是由一块板子和一支压感笔组成,它和手写板等作为非常规的 ...

  9. 3G技术特点及市场分析

    2019独角兽企业重金招聘Python工程师标准>>> 3G,全称为3rd Generation,中文含义就是指第三代数字通信.1995年问世的第一代模拟制式手机(1G)只能进行语音 ...

最新文章

  1. 你的企业在什么情况下需要人工智能?快来看看你需要具备哪些条件与能力吧!...
  2. pomelo 分布式聊天入门客户端demo(c#)
  3. MySQL复习资料(三)——MySQL-DML语句
  4. 将自己写的windows服务加入到windows集群中
  5. [C++STL]常用排序算法
  6. 拒绝网络*** 如何防御Sniffer***
  7. Android 仿微信朋友圈发表图片拖拽和删除功能
  8. 1014. 最佳观光组合
  9. java 调用 libsvm_请问该如何调用libsvm 的java 库函数?
  10. 清除Chrome浏览器的历史记录、缓存
  11. CSDN图片去除水印
  12. Flutter插件开发--获取Android手机电池信息
  13. 更新显卡驱动后黑屏无法进入系统的解决办法
  14. 两点顶点之间最短路径问题
  15. Windows下编译MICO源代码遇到的问题
  16. 单片机应用程序开发QY-JXSY51
  17. 新玺配资:外围市场大跌 A股很难不受影响
  18. 赵小楼《天道》《遥远的救世主》深度解析(58)丁元英听到芮小丹说自已击毙了一个罪犯后心里的那一颤
  19. PAT 十一章 模拟 1-16 自用
  20. CEO、COO、CFO、CTO、CIO是什么意思

热门文章

  1. 【Echarts】设置主题、扇形格式化
  2. Paddle2.0让你成为诗词大师-PaddlePoetry
  3. 网站seo优化推广方式有哪些?如何提高网站排名?
  4. Unity3D实现谷歌数字地球
  5. 宜家IKEA EDI IFTMBF运输预定请求详解
  6. PHP三网码支付系统源码PC软件带云端源码/含三套前端模板免签支付系统安装教程
  7. 叶荣添给你的11条投机建议!
  8. Windows安装乌班图(Ubuntu)教程及错误解决办法
  9. 任天堂switch修改服务器,任天堂switch将退在线服务器 玩家似乎并不买账
  10. 2.SpringBoot学习(二)——Spring Boot ConfigurationProperties