一、项目背景与介绍

数据来源:kaggle数据科学社区上TMDB 5000 Movie Dataset数据集:TMDB 5000 Movie Dataset

数据介绍:TMDB是一个电影资料库,本项目数据主要为欧美地区2017年之前的5000部电影

分析目的:对电影数据进行分析研究,了解电影市场趋势,为电影制作提供决策。

二、定义问题

1、各类型电影数量会随时间如何变化吗?是如何变化的?

2、不同类型的电影的盈利情况有何差异?

3、原创电影与改编电影的有何差异?

4、电影主要产自哪些地区?

5、观众喜好与哪些因素有关?

6、Universal Pictures与Paramount Pictures两家巨头公司的业绩如何?

三、理解数据

导入相关安装包,读取数据
查看数据信息观察数据,发现 genres、keywords、production_companies、production_countries、spoken_languages、cast、crew列为JSON编码的字符串。

删去credits的列title,因为该列和movies的列重复了,再把两个数据集合并,删去不在研究范围内的值。

credits中movie_id列 和 movies中id列是对应关系,故以此为连接合并两个数据集。

各字段含义:

● id:标识号

● movie_id:标识号

● popularity:在 Movie Database 上的相对页面查看次数

● budget:预算(美元)

● revenue:收入(美元)

● original_language:原始语言

● spoken_languages:输出语言

● original_title:原始电影名称

● cast:演员列表,按 | 分隔,最多 5 名演员

● crew:剧组

● title:电影名称

● status:电影状态

● homepage:电影首页的 URL

● tagline:电影的标语

● keywords:与电影相关的关键字,按 | 分隔,最多 5 个关键字

● overview:剧情摘要

● runtime:电影时长

● genres:风格列表,按 | 分隔,最多 5 种风格

● 制作公司列表:production_companies按 | 分隔,最多 5 家公司

● production_countries:制作国家

● release_date:首次上映日期

● vote_count:评分次数

● vote_average:平均评分

三、数据清洗

1、选择子集

通过 info()和describe ()方法查看要研究的数据是否存在异常情况
可以看到release_date、runtime存在缺失值。

可以看到budget,revenue,vote_average,vote_count最小值为0,这些列中可能存在异常值。

2、缺失值处理

查找资料,填充缺失值
查看runtime的缺失值
查找资料,填充缺失值

3、异常值处理

budget,revenue,vote_average,vote_count最小值为0,可能存在异常,用平均值填充。

4、数据格式转换

查看release_date列的数据
需要转换为日期类型并提取年份

5、特殊格式数据处理

本项目要进行研究的数据中的genres,keywords,production_companies,production_countries列均为json格式,不便对其进行分析。需通过json.loads先将json字符串转换为字典列表形式,再使用循环,选取需要的数据,本次分析取出name键所对应的值,并用“|”分隔。

四、数据分析及可视化

1、各类型电影数量变化和分布

(1)各类型电影逐年的数量变化

genre_set集合存放所有电影类型
genre_year_df存放各个年份的不同电影类型的电影总数
绘图:
由图可见,约从1992开始,电影市场开始爆发式增长,其中戏剧类(Drama)和喜剧类(Comedy)这两个类型是随时间增长幅度最大,其次是惊悚片(Thriller)和动作片(Action)。

(2)各类型电影数量分布

各类型电影总数
各类型电影数量分布图:
从图中可看出,排名前5的类型为Drama、Comedy、Thriller、Action和Romance。其中即使是排名前5的类型中,每一类型之间的差距也不算小。Drama类稳稳的在榜首。

2、各类型电影的盈利情况

profit_df存放电影类型和利润数据

profit_by_genre存放计算后的各类型电影的利润平均值,利润=收入-支出成本
各电影类型平均收益分布图:

3、原创电影与改编电影的差异

keywords中的包含"based on novel"的是改编电影,其余是原创电影。

创建一个DataFrame存放原创电影与改编电影original_recompose,包含type、 profit 、 budget 等字段,计算出利润率 profit_rate=profit/budget 。

(1)电影数量对比


原创电影占据了几乎所有的市场,只有少部分为改编电影

(2)利润及利润率对比

改编电影的支出要高于原创电影,且对应的收入和利润也要高于原创电影

4、电影产地分布

统计出各个地区的电影数量,country_df存储电影产地的数据

绘制饼图:


由图可见,美国电影数量一骑绝尘,占比达到了61.4%,名副其实的产出大国(应该也与该网站收录的数据有关)。其次是英国,德国,法国,加拿大。

5、观众喜好与哪些因素有关

(1)电影类型与受欢迎度的关系

popularity字段是在 Movie Database 上的相对页面查看次数,根据这个数据来判断电影的受欢迎度。

绘图
可见,最受观众欢迎的电影类型的前五名是

Adventure、Animation、Science Fiction、Fantasy 、Action

(2)电影时长与受欢迎度的关系

受欢迎度较高的电影的时长基本在90-150分钟之间。 电影时长太长或太短的电影受欢迎程度较低。

(3)电影评分与受欢迎度的关系


评分高的电影不一定受欢迎度高,可能存在冷门好片。 但受众欢迎度高的,电影评分基本也不低,群众的眼睛是雪亮的,制作公司产出好片,获得受众喜爱的概率也更高。经过更多受众的检验,该电影为好片的可靠性也更高。

6、Universal Pictures与Paramount Pictures两家巨头公司的业绩如何?

company_df存放两家公司、电影类型、盈利的数据

(1)利润对比

绘图
由图可见,两家公司利润总额并无明显差异,Universal Pictures公司略高于Paramount Pictures公司。

(2)出品的电影类型对比

company_df存放两家公司、各类型电影,数值为1的代表属于该类型。

绘图Universal Pictures:

绘图Paramount Pictures:

7、电影关键词

keywords_list存放从keywords中提取出的关键词,去掉一些没有实际含义的字符串和短语
通过WordCloud包生成词云图

kaggle电影数据分析报告相关推荐

  1. 2021春节档7部电影数据分析报告

    2021春节档7部电影数据分析报告

  2. 豆瓣Top250电影数据分析报告

    我的其他数据分析报告:求职指南--数据分析职位解析 [Python3]Requests+正则表达式+multiprocessing爬虫并存入MySQL数据库 一.分析背景及目的 豆瓣对Top250电影 ...

  3. python电影数据分析报告_Python数据分析实战:TMDB电影数据可视化

    一.数据预处理 本文将以项目实战的形式,对 TMDB电影数据进行数据分析与可视化实战,所使用的数据来源于 Kaggle,文末提供数据的下载方式. import json import pandas a ...

  4. python电影数据分析报告_【python数据分析实战】电影票房数据分析(二)数据可视化...

    在上一部分<[python数据分析实战]电影票房数据分析(一)数据采集> 已经获取到了2011年至今的票房数据,并保存在了mysql中. 本文将在实操中讲解如何将mysql中的数据抽取出来 ...

  5. python电影数据分析的代码_python-small-examples

    Kaggle电影数据分析实战 本项目基于Kaggle电影影评数据集,通过这个系列,你将学到如何进行数据探索性分析(EDA),学会使用数据分析利器pandas,会用绘图包pyecharts,以及EDA时 ...

  6. ActiveReports 大数据分析报告:2018中国电影再次迎来黄金时代

    回顾2018,中国电影市场收获颇丰.先是凭借春节档<红海行动>.<唐人街探案>双双实现30亿票房突破,而后暑期档火力全开,<我不是药神>.<西虹市首富> ...

  7. 电影数据分析练习——ppt报告

    电影数据分析练习

  8. python 豆瓣评论数据分析_Python爬虫实战案例:豆瓣影评大数据分析报告之网页分析...

    个人希望,通过这个完整的爬虫案例(预计总共4篇短文),能够让爬虫小白学会怎么做爬虫的开发,所以在高手们看来,会有很多浅显的废话,如果觉得啰嗦,可以跳过一些内容~ 上一篇文章给大家简单介绍了Python ...

  9. 【ActiveReports 大数据分析报告】用数据分析的手段告诉你,复联4有多火爆?

    消失的人们会回来吗,奇异博士所说的1400万分之一可能性究竟是什么,还会有谁逝去? 4月24日零时,随着万众期待的<复仇者联盟4>(以下简称<复联4>)正式上映,一切谜底都将揭 ...

  10. Titantic乘客生还预测数据分析报告—基于python实现

    Titantic乘客生还预测数据分析报告-基于python实现 1. 问题提出 2. 数据描述 3. 特征独立分析 4. 数据处理 5. 模型评估 1. 问题提出 Titantic数据集是Kaggle ...

最新文章

  1. Java项目:课程资源管理+在线考试平台(java+SSH+mysql+maven+tomcat)
  2. zynq中mgtx应用_基于ZYNQ的UCOS移植(TCP通讯)
  3. 07-mysql基本查询,阶段二,条件查询
  4. 基础知识 + 面试题目 总结 索引页
  5. ArrayList 面试10连问
  6. C++面试题-面向对象-静态成员变量以及静态成员函数
  7. 零基础学python全彩版-零基础轻松学Python:青少年趣味编程(全彩版)
  8. jdbc preparestatement 执行多条语句_MyBatis执行器
  9. python机器学习案例系列教程——基于规则的分类器
  10. python AttributeError: 'module' object has no attribute 'dumps'解决办法
  11. 防火墙IPSec 虚拟专用网络配置[虚拟机环境]
  12. Html post易语言服务器,POST其实很简单 15 易语言模块之精易模块
  13. Latex学习笔记——字母的变体(正体、花体)
  14. 时域OCT与频域OCT的区别
  15. 格密码与最短向量上界
  16. 分布式架构优缺点以及设计
  17. Msc.Marc的python开发#1
  18. surface pro java_【微软SurfacePro4评测】两代产品外观对比_微软 Surface Pro 4_笔记本评测-中关村在线...
  19. echarts数据可视化图表(二):双柱状图
  20. python实例1-找质数/素数

热门文章

  1. 微信怎样关闭QQ文件服务器,如何屏蔽QQ和微信的外发文件?
  2. 阿里云主机的公网带宽和私网带宽的介绍
  3. 阿里云主机修改操作系统 详细步骤
  4. python地图可视化前端页面展示_利用pyecharts实现地图可视化的例子
  5. 企业如何选择?网站建设中常见的几种类型
  6. 【STM32HF429的DSP教程】第40章 STM32F429的FIR带阻滤波器实现(支持逐个数据的实时滤波)
  7. 『互联网架构』软件架构-软件系统设计(一)
  8. 关于word中的DDE如何查看
  9. window出现msvcp100.dll缺失问题
  10. char可以是负数吗