使用 Python 进行 Netflix 数据分析

2025年3月17日 | 阅读13分钟

数据分析是一种支持企业决策的有效技术。在今天的教程中,我们将使用 Python 调查 Netflix 信息集并发现有趣的结果。

Netflix 是全球最大、最受欢迎的在线服务之一,为客户提供庞大的电视剧和电影库。该网站最近积累了大量的追随者,其受欢迎程度似乎很强劲。在本教程中,我们将演示如何使用 Python 对我们从 Kaggle 获取的 Netflix 信息集进行探索性信息分析 (EDA)。为了可视化和分析信息,我们将使用各种 Python 包,例如 Pandas、Seaborn、Matplotlib 和 Plotly。

Netflix Data Analysis using Python

Netflix 电影数据集

在开始本课程之前,您需要准备一些东西。首先要了解 Python 的内置数据结构,特别是列表和字典。有关更多详细信息,请参阅 Python 中的字典以及 Python 中的列表和元组数据结构。

您需要的第二项是功能齐全的 Python 环境。任何加载了 Python 3 的界面都可以让您跟随。如果您想看到更漂亮的结果,特别是对于您将使用的大型 NBA 数据集,请在 Jupyter 笔记本中运行代码示例。在开始本课程之前,您需要准备一些东西。第一步是理解 Python 的内置数据结构,尤其是列表和字典。有关更多信息,请查阅 Python 的字典、列表和多重结构部分。

您需要的第二项是功能齐全的 Python 环境。您可以在任何加载了 Python 3 的界面上跟随。如果您想看到更好的结果,特别是对于您将使用的大型 Netflix 电影数据集,请在 Jupyter 笔记本中运行代码示例。

Netflix 电影表(我们将在 ML 模型训练和测试中使用的示例数据集)

s3129电视节目法国1 月 14 日,2018TV-Y1 季
s3131电影波兰1 月 14 日,2019TV-MA132 分钟
s3132电影USA1 月 12 日,2018TV-1456 分钟
s3133电影印度1 月 12 日,2019TV-MA128 分钟
s3134电视节目USA1 月 11 日,2020TV-141 季
s3135电视节目英国1 月 11 日,2019TV-MA1 季
s3136电视节目USA1 月 11 日,2020TV-Y74 季
s3137电视节目印度1 月 11 日,2020TV-MA1 季
s3138电视节目USA1 月 11 日,2020TV-MA1 季
s3139电影英国1 月 11 日,2014R119 分钟
s3141电视节目澳大利亚1 月 11 日,2020TV-Y2 季
s3141电视节目法国1 月 11 日,2020TV-MA1 季
s3142电影USA1 月 9 日,2020TV-MA97 分钟
s3143电视节目USA1 月 8 日,2020TV-MA1 季
s3144电影USA1 月 7 日,2017R92 分钟
s3145电影西班牙1 月 7 日,2020TV-MA112 分钟
s3146电视节目英国1 月 4 日,2020TV-141 季
s3147电影墨西哥1 月 3 日,2020TV-1491 分钟
s3148电视节目加拿大1 月 3 日,2019TV-PG3 季
s3149电影印度1 月 2 日,2017TV-14129 分钟
s3151电视节目USA1 月 2 日,2020TV-MA1 季
s3151电视节目比利时1 月 2 日,2019TV-MA1 季
s3155电影英国1 月 1 日,2014TV-PG115 分钟
s3156电视节目日本1 月 1 日,2018TV-PG1 季
s3158电影USA1 月 1 日,2017TV-Y78 分钟

导入库并加载信息

源代码片段

信息集的前五行,包含 12 列,是 2020 年 9 月 8 日上传的电视节目和电影。我们可以从类型列中识别它是电视节目还是电影。

现在信息已经清理完毕,让我们通过可视化进一步调查它。

注意:您是否知道 Python 社区中有多个包管理器,并且不确定选择哪一个?pip 和 conda 都是不错的选择,各有优点。
如果您主要使用 Python 进行数据科学任务,Conda 可能是更好的选择。conda 生态系统中有两个主要选项:
如果您想快速建立一个可靠的数据科学环境,并且不介意收集 500 MB 的数据,请查看 Anaconda 包。
如果您想要更简单的设置,请查看《在 Windows 上为人工智能设置 Python》中 Miniconda 的安装。

源代码片段

输出

show_id0
type0
title0
导演2634
演员825
国家831
date_added10
release_year0
评级4
duration3
listed_in0
描述0
dtype:int643

解释: 您的数据集的列与每一列包含的数据类型一起列出。这里显示了 int64 和 object 数据类型。Pandas 使用 NumPy 库处理这些类型。稍后将向您介绍更复杂的分类信息类型,该类型由 pandas Python 模块直接实现。

对象数据类型是一种独特的数据类型。根据 pandas Cookbook,对象数据类型是“pandas 无法识别为任何其他特定类型的数据的包罗万象的类型。” 实际上,它通常表示该列的所有值都是字符串。

对象数据类型允许您存储任何 Python 对象,但您应该了解其局限性。对象字段中的异常值可能会对 pandas 的性能以及与其他库协同工作的能力产生负面影响。有关更多详细信息,请查看公司的入门手册。

。以下列的空值需要清理:

导演?2,634 个空值

  • 演员?825 个空值
  • 国家?831 个空值
  • date__added?11 个空值
  • 评级?4 个空值
  • 持续时间?3 个空值

注意:您也可以使用网络浏览器下载 CSV 文件。
但是使用下载脚本有许多好处:
您可以识别数据的来源。
下载可以随时重复!如果数据经常更新,这非常有用。
17MB 的 CSV 文件不需要分发给您的同事。通常,共享下载脚本就足够了。

源代码片段

解释: 我们可以用两种方式回应“国家”列。首先,由于 Netflix 成立于美国,我们可以用“USA”替换所有 NaN 值。由于这些电影的国家/地区未在信息中注明,我们也可以用“未指定”替换 NaN 值。我们可以用“无导演”和“无演员”分别替换“导演”和“演员”等列中的缺失值。通过替换这些列中的值而不是删除它们,我们可以保留我们的信息。

由于其他类别(如添加日期、持续时间、词干和评级)的值计数缺失值非常少,我们将从信息集中删除它们。

源代码片段

输出

剧情片、国际电影462
纪录片449
单口喜剧444
喜剧、剧情片、国际电影274
剧情片、独立电影、国际电影242
犯罪电视节目、国际电视节目、科幻与奇幻电视节目11
国际电视节目、恐怖电视节目、科幻与奇幻电视节目11
犯罪电视节目、儿童电视节目12
恐怖电影、国际电影、科幻与奇幻13
邪典电影、剧情片、惊悚片14

解释: 结果显示“listed__in”列中有 461 个不同的值。“纪录片”值出现最频繁,出现 299 次,其次是“单口喜剧”出现 273 次,然后是“剧情片、国际电影”出现 248 次。最不频繁的数字每个只出现一次。

如您所见,我们的评分列中只有 11 条信息必须包含在内。您可以替换它们或删除它们。由于 TV-MA 是最常用的评分,因此所有这些 NaN 值都可以替换为 TV-MA。

数据分析

源代码片段

输出

Netflix Data Analysis using Python

解释: 它显示了信息集中包含的电影和电视剧的数量。该图表明信息集中包含的电影多于电视节目。

源代码片段

输出

Netflix Data Analysis using Python

解释: 第二个输出显示了“df1”信息框中“评分”列的计数图。“评分”列显示了每个不同值的数量。该图表明 TV-MA 是信息集中总体评分最高的,其次是 TV-14 和 TV-PG。从那里,我们构建了一个简单的计数图,并通过进行微小调整对其进行迭代。对条形图顺序的更改和分组计数图的添加是我们对图的首次样式设置课程。从那里,您发现了如何使用颜色来装饰图,包括有条件地为条形图着色。然后您发现了如何通过包含值标签来进一步修改图。

源代码片段

输出

Netflix Data Analysis using Python

解释: 第三个输出由“df1”信息框中“评分”列的计数图组成,颜色调整为“类型”列。此图表显示了“评分”列中每个不同值的频率,按内容类型(例如电影或电视节目)细分。通过此图,我们可以观察电影评分分布和电视剧评分分布的不同之处。我们可以观察到,虽然 PG-13 评分在电影中比在电视剧中更普遍,但电视剧更有可能获得 TV-MA 分类。

源代码片段

输出

Netflix Data Analysis using Python

解释: 此条形图显示了不同年份发布并可在 Netflix 上观看的电影的频率。该图显示了信息集中电影出现次数最多的 20 年,每个年份的电影数量显示在 y 轴上。“各种年份发布并可在 Netflix 上观看的电影的频率”是图表的标题,以红色突出显示。在比较数据集时,当一个变量发生变化时,会使用多个条形图。将其转换为堆叠区域条形图很简单,其中每个子组显示在另一个之上。通过更改条形图的位置和厚度,可以绘制它。

源代码片段

输出

Netflix Data Analysis using Python

与上面的输出类似,此输出显示了随着时间推移发布并在 Netflix 上可用的电视节目的频率。

源代码片段

输出

Netflix Data Analysis using Python

源代码片段

输出

Netflix Data Analysis using Python

这些水平条形图显示了前 10 个电影和电视节目类别。

使用 Python 进行 Netflix 数据分析的整合代码

输出

Netflix Data Analysis using Python

解释: 从第一个图我们可以看出 Netflix 在 2018 年至 2020 年间引入新内容的频率。根据图表,添加的标题数量每年都有增长,2015 年有显著增长。电影的年度添加量通常超过电视剧集。

第二个图显示了 Netflix 在 2018 年至 2020 年间添加的前 20 个类别。该图表明“国际电影”是最受欢迎的类型,其次是“剧情片”和“喜剧片”。此外,少数电视节目类别也进入了前 20 名,其中大部分是电影类别。这意味着 Netflix 优先在其平台上引入电影,而不是电视剧集。

进一步分析

前 5 名导演:代码识别出电影数量最多的前 5 名电影制作人。Rajiv Chilaka、Raúl Campos、Suhas Kadav、Jan Suter 和 Marcus Raboy 榜上有名。

导演计数
4019拉吉夫·奇拉卡22
4066劳尔·坎波斯18
261扬·苏特18
4650苏哈斯·卡达夫16
3233马库斯·拉博伊16

前 5 名演员:代码还识别出电影数量最多的前 5 名演员。Rupa Bhimani、Anupam Kher、Julie Tejwani、Takahiro Sakurai 和 Om Puri 榜上有名。

演员计数
2605阿努帕姆·凯尔39
26903鲁帕·比马尼31
30263樱井孝宏30
15518朱莉·特瓦尼28
23591奥姆·普里27

按气候数量排名的前 5 名电视节目:代码列出了按气候数量排名的前 5 名电视节目。信息集包含名称、运行时长、类型和气候数量的信息。可以看出,气候数量最多的电视节目有 16 个。

编号。title类型气候数量
548实习医生格蕾电视节目17
2423邪恶力量电视节目15
4798海军罪案调查处电视节目15
4220世界喜剧演员电视节目td13
1354牧场之家电视节目13

结论

总之,我们使用 Python 和各种信息分析模块对 Netflix 内容了解了很多。Netflix 在其平台上添加材料以及如何向观众推销材料的决策可以通过这些信息得到改进。任何行业都可以从信息分析中获得的见解和决策中受益,因为它是一种强大的工具。使用 Python 和统计工具,我们可以更好地理解任何信息集并做出信息驱动的决策。