
В этом проекте представлен анализ данных о фильмах с использованием 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»
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 ()
Для анализа структуры контента платформы был выполнен подсчёт количества фильмов и сериалов. Полученные данные были визуализированы с помощью столбчатой диаграммы, так как данный тип графика наиболее подходит для сравнения категориальных значений.
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 задан тёмно-красный оттенок, что позволяет сформировать единый визуальный стиль проекта и отойти от дефолтных настроек библиотеки.
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 ()
data_frame['rating'].value_counts ().plot (kind='bar', color = «#82180c») plt.title ('Распределение возрастных рейтингов', fontproperties=title_font) plt.xlabel ('Рейтинг') plt.ylabel ('Количество') plt.show ()
Также была попытка изменить дефолтный шрифт, но к сожалению в существующей библиотеке не оказалось конкретно того который я хотел использовать.