Original size 1584x2223

Анализ киноиндустрии Netflix

PROTECT STATUS: not protected
The project is taking part in the competition

Введение

Какие данные выбраны, где они найдены

В этом проекте представлен анализ данных о фильмах с использованием Python и библиотеки Pandas. Для работы был выбран открытый датасет с платформы Kaggle, содержащий информацию о фильмах: год выпуска, жанры, пользовательские рейтинги и количество голосов.

Данные представлены в табличном формате CSV, что делает их удобными для программной обработки и анализа.

Почему данные представляют интерес

Кино является огромной частью массовой культуры и отражает изменения во вкусах и предпочтениях аудитории. Анализируя рейтинги, жанры и динамику их изменений, можно выявить устойчивые закономерности и тенденции в восприятии фильмов зрителями.

Типаж графиков в проекте

Гистограмма — для анализа распределения рейтингов; Линейный график — для изучения динамики среднего рейтинга во времени; Столбчатая диаграмма — для сравнения популярности жанров;

Описание данных и источник

Для анализа был использован датасет, содержащий информацию о фильмах: год выпуска, жанры, рейтинги и количество пользовательских оценок. Данные были взяты из открытого источника «Kaggle» и представлены в табличном формате CSV.

Выбор именно этих данных обусловлен их «культурной значимостью»: кино является массовым медиумом, а рейтинги и жанры отражают зрительские предпочтения и изменения во времени.

Подготовка данных

Вводные данные

Анализ начинается с загрузки данных и первичного знакомства с их структурой. Для работы используется библиотека Pandas, предназначенная для анализа табличных данных. import pandas as pd Этот код загружает CSV-файл с фильмами и позволяет визуально проверить, как выглядят первые строки таблицы.

Для визуализации данных используется библиотека Matplotlib, позволяющая гибко настраивать внешний вид графиков. import matplotlib.pyplot as plt

Для стилизации графиков и работы с пользовательскими шрифтами используется модуль FontProperties из Matplotlib. from matplotlib.font_manager import FontProperties

Визуализация Графиков

Начало Стилизации

title_font = FontProperties ( family='Courier New', weight='bold', size=16 ) plt.rcParams['figure.figsize'] = (9, 5) plt.rcParams['axes.facecolor'] = '#F2F2F2' plt.rcParams['figure.facecolor'] = '#F2F2F2' plt.rcParams['font.family'] = 'serif' plt.rcParams['axes.titleweight'] = 'bold' plt.rcParams['axes.edgecolor'] = «#82180c»

Для визуализаций

был задан единый стилистический набор параметров с помощью rcParams. Это позволило обеспечить визуальную консистентность графиков: задать размеры, цвет фона, шрифты и акцентные элементы. Отдельно был настроен стиль заголовков с использованием FontProperties.

Очистка данных

data_frame = data_frame.dropna (subset=['release_year']) data_frame['release_year'] = data_frame['release_year'].astype (int) data_frame['main_genre'] = data_frame['listed_in'].str.split (', ').str[0]

На этом этапе были удалены записи без указания года выпуска, так как такие фильмы невозможно корректно включить во временной анализ.

Соотношение фильмов и сериалов

data_frame['type'].value_counts ().plot (kind='bar', color = «#82180c») plt.title ('Соотношение фильмов и сериалов на Netflix', fontproperties=title_font) plt.xlabel ('Тип контента') plt.ylabel ('Количество') plt.show ()

Для анализа структуры контента платформы был выполнен подсчёт количества фильмов и сериалов. Полученные данные были визуализированы с помощью столбчатой диаграммы, так как данный тип графика наиболее подходит для сравнения категориальных значений.

Original size 781x521

Общее количество релизов по годам

releases_by_year = data_frame['release_year'].value_counts ().sort_index () plt.plot (releases_by_year, color='#82180c') plt.title ('Количество релизов Netflix по годам', fontproperties=title_font) plt.xlabel ('Год') plt.ylabel ('Количество релизов') plt.show ()

Для анализа динамики выпуска контента был построен линейный график количества релизов по годам. При визуализации осознанно используется нестандартное цветовое решение: вместо стандартного синего цвета Matplotlib задан тёмно-красный оттенок, что позволяет сформировать единый визуальный стиль проекта и отойти от дефолтных настроек библиотеки.

Original size 781x472

Выявление самых просматриваемых жанров

top_genres = data_frame['main_genre'].value_counts ().head (10) plt.barh (top_genres.index, top_genres.values, color = «#82180c») plt.title ('Топ-10 жанров на Netflix', fontproperties=title_font) plt.xlabel ('Количество тайтлов') plt.show ()

Original size 911x472

Возрастное ограничение

data_frame['rating'].value_counts ().plot (kind='bar', color = «#82180c») plt.title ('Распределение возрастных рейтингов', fontproperties=title_font) plt.xlabel ('Рейтинг') plt.ylabel ('Количество') plt.show ()

Также была попытка изменить дефолтный шрифт, но к сожалению в существующей библиотеке не оказалось конкретно того который я хотел использовать.

Original size 781x522

Итоговые выводы

В результате анализа

были выявлены ключевые особенности структуры и динамики контента Netflix. Анализ показал, что фильмы значительно преобладают над сериалами. Это указывает на ориентацию платформы не только на долгосрочные форматы, но и на массовый выпуск самостоятельных киноработ. Количества релизов по годам демонстрирует выраженный рост выпуска контента, особенно в последние годы. Это отражает стратегию Netflix по расширению библиотеки и усилению присутствия на глобальном рынке. Выделение основного жанра фильма позволило выявить наиболее представленные категории контента. Такой подход показал, что несколько ключевых жанров доминируют, формируя основу каталога платформы.