TMDB电影数据分析(上)

简介: TMDB电影数据分析(上)

TMDB电影数据分析(上)

     本文对源自Kaggle TMDB电影数据集进行分析影响电影票房的因素,数据分析流程包含数据集概分析、数据清洗、数据统计以及分析影响电影票房的因素。影响票房因素可能是电影预算、电影类型、电影时长、受欢迎程度、电影评分,发行时间等有关系,通过具体数据进行分析影响票房的因素。

数据集分析

     TDMB电影数据集包含大约 5000 部电影的相关数据。本次实验使用数据集中有关电影的数据表 tmdb_5000_movies.csv 进行数据分析。

     该数据集的下载地址是https://www.kaggle.com/datasets/tmdb/tmdb-movie-metadata

     首先导入本次实验需要的使用的四个Python工具库,分别是numpy、pandas、matplotlib、seaborn。

     接下来导入数据集,调用Pandas的read_csv()函数读取.csv类型的文件,以数据文件名’tmdb_5000_movies.csv’作为参数。read_csv函数生成一个DataFrame,而后赋值给movies变量。调用DataFrame的info()方法查看数据集的详细信息,包含数据行数、列数、列索引、每列数据的数据类型,数据存储等。在数据文件中,每一行数据是一条记录,每一列称为一个字段。

     输出结果如下:

     由结果可以看出,该数据集总共有20个字段,总共包含4803条记录,记录索引为0至4802。另外,统计了各个字段上非空值的数目及各个字段的数据类型,比如tagline字段非空值数目为3959,总数据量为4803,说明该字段含有空值。使用isnull()方法判断是否缺失,sum()方法统计缺失的数目。结果如下图所示。

     下面针对数据集各字段进行解释:

数据字段展示表

字段名 字段解释 备注
budget 预算 以美元为单位存储
genres 类型 记录电影类型、风格
homepage 主页 记录电影链接
id 电影标识号
keywords 关键字 用于描述电影
original_language 原声语言
original_title 原标题
overview 概览 电影简介
popularity 受欢迎度
production_companies 制片公司
production_countries 国家
release_date 发行日期
revenue 电影收入
runtime 电影时长
spoken_languages 语言
status 电影状态
tagline 宣传语
title 标题
vote_average 评分
vote_count 评分次数

显示详细信息

     下面调用DataFrame的describe()查看给定数据样本的基本统计信息,包含budget、id、popularity、revenue、runtime、vote_average、vote_count字段,对每个数值类型的字段统计个数、平均值、标准差、最小值、四分之一分位点(25%)、四分之二分位点(50%)、四分之三分位点(75%)以及最大值。

     上述结果表格中,budget、popularity、revenue、runtime、vote_average、vote_count列的最小值为0,对于budget、revenue、runtime中出现0是不符合常规的,认为这些是异常值,尤其revenue列25%处为0,说明revenue列中存在很多为0的值。

     查看budget字段为0的记录使用query()方法进行筛选数据,并使用head()方法查看前几行数据,默认是查看前5行数据,head(2)表示查看前2行数据。movies数据集一共有20个字段,下面的输出结果中只列出前面10个。在Jupyter Notebook页面上,拖动下端的水平滚动条可以看到后面10个字段的内容。

数据清洗

     经初步浏览数据集基本信息可以看出,数据集中存在缺失值现象,处理缺失值的常用方法有删除法、替换法、插入法。数据集中homepage、tagline字段中含有大量缺失值,考虑到这两个字段对不影响本次分析,可以直接删除这两个字段,同时删除其他与分析无关的字段。下面第一行代码调用DataFrame的drop()方法删除7个字段的数据,axis=1表示删除第二个维度上的数据,第二个维度代表列。参数inplace = True,表示直接将删除操作作用在数据集本身。第二行代码“movies.shape”查看数据集的行数和列数,返回一个元组,表示该数据集有4803条记录,每条记录有13个字段,也即行数是4803,列数是13。

     对于release_date、runtime这两个字段缺失值较少,可以使用指定数据进行手动填充缺失值,也可以直接删除含有缺失值的记录。

     删除含缺失值的记录(即一整行)的操作如下:

     数据集中可能存在某些记录重复,使用drop_duplicates()方法去掉重复记录,操作如下:

     keep参数为’first’,表示保留第一次出现的重复行,删除后面的重复行。

     另外,异常值存在对数据分析干扰很大,异常值过多,对分析结果产生不良影响,导致分析结果出现偏差甚至错误,统计各字段中异常值数目,操作如下:

     在数据量充足情况下,可以删除异常值所在记录,操作如下:

     上述代码调用movies.query()方法查找出budget、revenue字段中异常值所在记录并获取相应索引,使用drop()方法删除指定索引的记录后,数据集中样本数据还有3229条记录。再次查看数据集各字段基本统计信息,数据相对正常。

数据统计以及分析影响电影票房的因素

TMDB电影数据分析(下)https://developer.aliyun.com/article/1507629?spm=a2c6h.13148508.setting.14.1b484f0eD2AqhJ


目录
相关文章
|
1月前
|
数据采集 存储 数据挖掘
TMDB电影数据分析(下)
TMDB电影数据分析(下)
53 0
|
1月前
|
机器学习/深度学习 数据采集 数据可视化
R语言电影数据分析:随机森林探索电影受欢迎程度因素、参数调优可视化
R语言电影数据分析:随机森林探索电影受欢迎程度因素、参数调优可视化
|
1月前
|
SQL 分布式计算 数据挖掘
面试官嫌我Sql写的太low?要求我重写还加了三个需求?——二战Spark电影评分数据分析
面试官嫌我Sql写的太low?要求我重写还加了三个需求?——二战Spark电影评分数据分析
56 0
面试官嫌我Sql写的太low?要求我重写还加了三个需求?——二战Spark电影评分数据分析
|
1月前
|
分布式计算 数据挖掘 关系型数据库
Spark综合练习——电影评分数据分析
Spark综合练习——电影评分数据分析
48 0
|
9月前
|
SQL 分布式计算 数据挖掘
大数据Spark电影评分数据分析
大数据Spark电影评分数据分析
123 0
|
10月前
|
数据可视化 数据挖掘 数据库
可视化 | Flask+Mysql+Echarts 豆瓣电影Top250数据分析系统
可视化 | Flask+Mysql+Echarts 豆瓣电影Top250数据分析系统
|
11天前
|
机器学习/深度学习 数据采集 数据挖掘
如何用Python进行数据分析?
【6月更文挑战第13天】如何用Python进行数据分析?
106 66
|
8天前
|
数据采集 数据可视化 数据挖掘
数据挖掘实战:使用Python进行数据分析与可视化
在大数据时代,Python因其强大库支持和易学性成为数据挖掘的首选语言。本文通过一个电商销售数据案例,演示如何使用Python进行数据预处理(如处理缺失值)、分析(如销售额时间趋势)和可视化(如商品类别销售条形图),揭示数据背后的模式。安装`pandas`, `numpy`, `matplotlib`, `seaborn`后,可以按照提供的代码步骤,从读取CSV到数据探索,体验Python在数据分析中的威力。这只是数据科学的入门,更多高级技术等待发掘。【6月更文挑战第14天】
44 11
|
2天前
|
数据采集 机器学习/深度学习 数据可视化
利用Python和Pandas库构建高效的数据分析流程
在数据驱动的时代,数据分析已成为企业决策的关键环节。本文介绍如何利用Python编程语言及其强大的数据分析库Pandas,构建一套高效且可扩展的数据分析流程。与常规的数据分析流程不同,本文不仅涵盖数据加载、清洗、转换等基础步骤,还强调数据可视化、模型探索与评估等高级分析技巧,并通过实际案例展示如何在Python中实现这些步骤,为数据分析师提供一套完整的数据分析解决方案。
|
3天前
|
机器学习/深度学习 数据采集 数据可视化
使用Python进行数据分析涉及数据收集
【6月更文挑战第21天】使用Python进行数据分析涉及数据收集(如数据库、文件、API),数据清洗(处理缺失值、异常值和重复项),数据探索(统计摘要、可视化和相关性分析),特征工程(创建新特征和编码),模型构建(选择算法、训练与调整),模型评估(计算指标、可视化效果),结果解释(报告和可视化),以及部署与维护。此过程因项目需求而异,可能需迭代。常用库有`pandas`、`requests`、`BeautifulSoup`、`Matplotlib`等。
9 1

热门文章

最新文章