Анализ данных Netflix: Что смотрит мир?
Что доминирует в каталоге стриминга? Фильмы или сериалы? США или Индия? Драмы или комедии? 8800 тайтлов показывают стратегию контента Netflix: как они захватывают мир через локальные хиты + голливудские блокбастеры.
Netflix movies
Данные и источники
Я выбрал датасет Netflix Titles из Kaggle (Aman Kharwal) — 8800+ фильмов и сериалов: type (Movie/TV Show), release_year, country, listed_in (жанры), duration. Загружается напрямую: https://raw.githubusercontent.com/amankharwal/Website-data/master/netflix_titles.csv
Типы графиков
Столбчатые (1,5): соотношение фильмов/сериалов, страны
Стековый график (2): эволюция контента по годам
Горизонтальные столбчатые (3): топ-жанров
Гистограмма (4): длительность фильмов
Предобработка данных
Стилизация графиков
Параметры: figsize=(10-6, 12-6), dpi=100, tight_layout ().
Цветовая палитра
График 1 — Фильмы vs Сериалы
Анализ графика 1
Этот график показывает, какое количество фильмов и сериалов представлено на платформе. Видно, что фильмов (Movies) заметно больше, чем сериалов (TV Shows) — обычно в пропорции примерно 70% к 30%. Такое соотношение логично: Netflix активно закупает и производит фильмы, но за последние годы растёт доля сериалов благодаря развитию собственного контента и длительным франшизам.
Вывод: Платформа больше ориентирована на короткий контент (фильмы), но сериалы тоже занимают значительную долю, отражая стратегию удержания подписчиков длительным просмотром.
Работа кода
1.lt.figure (figsize=(10, 6)) Что делает: Создаёт пустой холст (окно) для графика размером 10 дюймов в ширину и 6 в высоту. Зачем: Чтобы график был достаточно крупным и хорошо читался.
2.type_counts = df['type'].value_counts () Что делает: Считает, сколько раз встречается каждый тип контента (Movie, TV Show). Зачем: Чтобы знать, сколько фильмов и сериалов есть в датасете.
3.colors = ['
E50914', '
221F1F'] # Цвета Netflix Что делает: Определяет цвета для столбцов — фирменные оттенки Netflix (красный и чёрный). Зачем: Чтобы график выглядел в стиле Netflix.4.bars = plt.bar (type_counts.index, type_counts.values, color=colors, alpha=0.8) Что делает: Строит столбчатую диаграмму:
по оси X — тип контента (Movie, TV Show);
по оси Y — количество записей. Зачем: Визуально сравнить, чего больше — фильмов или сериалов.
5.for bar in bars: Что делает: Запускает цикл по каждому столбцу. Зачем: Чтобы добавить подписи с числами и процентами.
6.height = bar.get_height () Что делает: Берёт высоту столбца (значение).
7.plt.text (…) Что делает: Добавляет над каждым столбцом текст — количество и долю в процентах. Зачем: Чтобы зрительно сразу понять масштабы, не глядя на ось Y.
8.plt.xlabel ('Тип контента', fontsize=12) Что делает: Подписывает ось X названием — «Тип контента».
9.plt.ylabel ('Количество', fontsize=12) Что делает: Подписывает ось Y — «Количество».
10.plt.title ('Распределение контента Netflix по типу', fontsize=14, pad=20) Что делает: Добавляет заголовок вверху графика. Зачем: Чтобы сразу понять, что изображено.
11.plt.grid (axis='y', alpha=0.3) Что делает: Добавляет горизонтальные линии сетки. Зачем: Чтобы легче было сравнивать высоту столбцов по оси Y.
12.plt.savefig ('netflix_content_type.png', dpi=100, bbox_inches='tight') Что делает: Сохраняет график в файл PNG с разрешением 100 точек на дюйм. Зачем: Чтобы использовать изображение в отчётах или презентациях.
13.plt.show () Что делает: Отображает готовый график на экране. Зачем: Чтобы увидеть результат построения.
Анализ графика 2
Этот график показывает, как меняется количество фильмов и сериалов по годам релиза: по оси X отложены годы, а по оси Y — число тайтлов каждого типа, объединённое в виде площадей (stackplot). На графике обычно видно, что общий объём контента растёт по мере приближения к текущим годам, причём сначала доминируют фильмы, а затем заметно увеличивается вклад сериалов, отражая усиление стратегии по выпуску оригинальных шоу. Такое поведение естественно: по мере роста Netflix компания вкладывает всё больше ресурсов в производство собственных тайтлов, в том числе многосезонных сериалов, которые лучше удерживают аудиторию.
Вывод: Каталог Netflix не только расширяется со временем, но и постепенно смещается в сторону более сбалансированного сочетания фильмов и сериалов, что поддерживает устойчивый интерес зрителей.
Работа кода
plt.figure (figsize=(12, 6)) Что делает: Создаёт холст для графика размером 12×6 дюймов. Зачем: Чтобы график получился широким и читабельным.
if 'release_year' in df.columns: Что делает: Проверяет, есть ли в таблице колонка release_year. Зачем: Чтобы не возникла ошибка, если столбца нет.
yearly_data = df.groupby (['release_year', 'type']).size ().unstack ().fillna (0) Что делает:
groupby (['release_year', 'type']) → группирует по году выпуска и типу контента (Movie/TV Show);
.size () → считает количество записей в каждой группе;
.unstack () → превращает типы (‘Movie’, ‘TV Show’) в отдельные столбцы;
.fillna (0) → заменяет пропуски на нули. Результат: таблица вида
text release_year | Movie | TV Show ------------- | ------|-------- 2010 | 50 | 10 2011 | 70 | 15 … yearly_data = yearly_data[yearly_data.index >= 2010] Что делает: Оставляет только данные с 2010 года. Зачем: Для современного периода роста Netflix.
plt.stackplot (…) Что делает: Рисует площадной график, где «Фильмы» и «Сериалы» накладываются слоями. Параметры:
yearly_data.index — ось X (годы);
yearly_data['Movie'], yearly_data['TV Show'] — площади под кривыми;
colors=['
E50914', '
221F1F'] — фирменные цвета Netflix (красный и чёрный);labels=['Фильмы', 'Сериалы'] — подписи в легенде;
alpha=0.7 — прозрачность для красивого наложения. Результат: Динамика добавления фильмов и сериалов по годам.
plt.xlabel ('Год выпуска') / plt.ylabel ('Количество добавленного контента') Что делает: Подписывает оси X и Y.
plt.title ('Рост контента Netflix по годам') Что делает: Добавляет заголовок к графику.
plt.legend () Что делает: Выводит легенду с цветами и подписями («Фильмы», «Сериалы»).
plt.grid (alpha=0.3) Что делает: Добавляет слабую сетку для удобства чтения графика.
plt.savefig ('netflix_by_year.png', dpi=100, bbox_inches='tight') Что делает: Сохраняет график в файл с разрешением 100 dpi.
plt.show () Что делает: Показывает готовый график на экране.
Анализ графика 3
Этот график показывает, какие жанры встречаются на Netflix чаще всего, выводя 10 лидирующих категорий по количеству тайтлов. Обычно среди верхних строк находятся жанры вроде Drama, Comedy, Documentary и Action, что говорит о фокусе на массовых и универсальных жанрах, ориентированных на широкую аудиторию. Такое распределение закономерно: именно эти жанры легче масштабировать и комбинировать в формате как фильмов, так и сериалов, поэтому они формируют основу контентной библиотеки.
Вывод: Платформа делает ставку на популярные жанры, которые хорошо воспринимаются большинством зрителей, а менее массовые направления остаются в меньшинстве, но дополняют основное предложение.
работа кода
Вот сокращённый вариант с пунктами:
plt.figure (figsize=(12, 6)) — создаёт холст 12×6 дюймов.
if 'main_genre' in df.columns: — проверяет наличие столбца жанров.
top_genres = df['main_genre'].value_counts ().head (10) — выбирает топ‑10 жанров.
plt.barh (…) — рисует горизонтальные столбцы (градиент красного).
plt.text (…) — подписи с количеством возле каждого бара.
plt.xlabel (…), plt.title (…) — подписи и заголовок графика.
plt.grid (axis='x', alpha=0.3) — лёгкая сетка по оси X.
plt.tight_layout () — аккуратная компоновка.
plt.savefig ('netflix_genres.png') — сохраняет картинку.
plt.show () — показывает результат.
Главный вывод для меня
Если смотреть на ситуацию с учётом графиков по Netflix в 2025 году, то стратегия выглядит так:
✅ Делать ставку на формат «фильма» — короткий, законченный продукт, а не громоздкий сериалообразный проект. Это основной тип контента, который лучше заходит массовой аудитории.
✅ Выбирать популярные жанры (аналогично Action/Comedy/Drama) — именно массовые жанры дают основной трафик и чаще попадают в топы, чем нишевые эксперименты.
✅ Ориентироваться на «понятный» формат по длительности и сложности: как у стандартного полнометражного фильма — достаточно насыщенно, но без перегруза, чтобы продукт был доступен максимально широкому кругу пользователей.
✅ Думать как о хитах, а не о количестве: небольшой, но хорошо спроектированный продукт в популярном формате и жанре с высокой доступностью для широкой аудитории имеет больше шансов «выстрелить», чем множество сложных, нишевых и перегруженных проектов.
Материалы
Датасет: Google Colab Netflix Analysis
Модели: DeepSeek Coder — код (25%) Perplexity AI — анализ (70%) Авторский вклад: 75% кода, структура.



