
Вводная часть
«Друзья» — это не просто популярный ситком 90-х, а сложившийся культурный феномен, который продолжает привлекать внимание новых поколений зрителей. Сериал давно стал точкой отсчёта для телевизионной комедии, а его герои и сюжеты — часть глобального медийного ландшафта.
Однако за широким признанием и устойчивой популярностью стоят конкретные данные, которые позволяют оценить успех проекта более объективно. Что может рассказать статистика зрительских рейтингов о динамике сериала на протяжении десяти сезонов? Как менялось восприятие проекта аудиторией в разные периоды его показа? Можно ли на основе цифр выделить наиболее значимые для зрителей сезоны или эпизоды?

Датасет содержит полную информацию по всем эпизодам сериала «Друзья», включая номер сезона, номер серии, рейтинг на IMDb и количество голосов.
Исходные данные были взяты с платформы Kaggle и представлены в табличном формате CSV.
Основная цель проекта заключается в анализе рейтингов сериала с применением инструментов обработки и визуализации данных. В рамках исследования ставится задача оценить изменения восприятия сериала зрителями в течение 10 сезонов, а также провести сравнительный анализ рейтингов между сезонами.
Причины выбора набора данных:
Анализ рейтингов эпизодов и количества голосов предоставляет возможность: — определить наиболее успешные сезоны, — отследить динамику изменения рейтингов за весь период трансляции сериала, — оценить уровень стабильности качества эпизодов в каждом сезоне, — выделить самые популярные серии и сезоны, — изучить, как менялась популярность шоу с 1994 по 2004 год.
Использование библиотек
Для анализа и визуализации данных использовались следующие библиотеки Python:
— Pandas — для загрузки и обработки данных, расчёта средних значений, группировки по сезонам и создания новых колонок для анализа. — Matplotlib — для построения графиков, настройки подписей осей, заголовков и общей компоновки графиков. перепиши другими словами
Типы графиков
Для анализа выбраны разные типы графиков, чтобы показать данные с нескольких сторон:
Линейный график — изменение популярности сериала на протяжении всех лет трансляции (1994-2004), демонстрирует общие тренды и динамику интереса зрителей.
Столбчатая диаграмма — средние рейтинги по каждому сезону, позволяет наглядно сравнить успешность разных сезонов между собой.
Круговая диаграмма — распределение серий по диапазонам рейтингов, показывает, какая доля серий получила высокие, средние и низкие оценки.
Boxplot (ящик с усами) — разброс рейтингов внутри каждого сезона, помогает оценить стабильность качества и выявить аномальные значения.
Гистограмма — общее распределение рейтингов всех серий, позволяет понять, какие оценки преобладают в сериале.
Стилизация графиков
Анализ
Ход работы
1. Подготовка данных (Kaggle) Скачала датасет (friends_ratings.csv). Изучила структуру: эпизоды, рейтинги, даты. Определила цели: динамика популярности, сравнение сезонов, распределение оценок.
2. Очистка и обработка Удалила пропуски. Привела даты к нужному формату. Добавила столбцы: сезон, год, категория рейтинга (высокий/средний/низкий).
3. Визуализация Линейный график: рейтинг по хронологии — для общей тенденции, пиков и спадов. Столбчатая диаграмма: средний рейтинг по сезонам — для выявления лучших/худших сезонов. Круговая диаграмма: доля серий по категориям рейтинга — чтобы увидеть преобладающий уровень оценок. Гистограмма: плотность оценок — для определения типичного рейтинга и разброса.
4. Анализ результатов Сопоставила выводы с графиков (пики, лучшие сезоны). Объяснила аномалии (финал — пик, спад в 7 сезоне). Проверила первоначальные гипотезы.
5. Итоги Сериал стабильно держал высокую планку. Наиболее сильными были средние сезоны. Финальные эпизоды получили наивысшие оценки.
Столбчатая диаграмма
Динамика по сезонам: золотая середина
Средние рейтинги по сезонам формируют характерную кривую, где пик пришелся на середину показа (сезоны 4, 5 и 6). Именно в этот период сериал достиг идеального баланса: сюжетные линии (отношения Росса и Рэйчел, Моники и Чендлера) были наиболее напряженными и продуманными, а юмор — острым и органичным. Сезоны 3-6 можно по праву назвать «золотой эрой» «Друзей».
Ну и самым высокооцененным сезоном становится долгожданный 10
season_avg = self.df.groupby ('Season')['Stars'].mean ()plt. rcParams['font.family'] = 'Helvetica’fig, ax = plt.subplots (figsize=(10, 5))bars = ax.ba r (season_avg.index, season_avg.values, co lor='
Круговая диаграмма
Анализ подтверждает, что «Друзья» — это сериал исключительной стабильности Абсолютное большинство эпизодов (более 85%) имеют рейтинг выше 8.0, что свидетельствует о высоком качестве юмора, сценария и актерской игры на протяжении всех 10 лет. Сериал не просто был популярен — он надежно удерживал внимание и любовь аудитории.
def create_season_chart (self): matplotlib.rcParams['font.family'] = 'Helvetica' season_avg = self.df.groupby ('Season')['Stars'].mean () plt.figure (figsize=(10, 6)) ax = plt.gca () bars = ax.bar (season_avg.index, season_avg.values, color='#9D90D3', edgecolor='white') ax.set_title ('Средние рейтинги сезонов «Друзей"', fontsize=14, fontweight='bold') ax.set_xlabel ('Сезон', fontsize=12) ax.set_ylabel ('Средний рейтинг', fontsize=12) ax.set_xticks (season_avg.index) for bar in bars: height = bar.get_height () ax.text (bar.get_x () + bar.get_width ()/2., height + 0.05, f'{height:.2f}', ha='center', va='bottom', fontsize=9) mean_value = season_avg.mean () ax.legend () plt.tight_layout () plt.show ()
Линейный график
К выходу последнего сезона просмотры упали, при этом рейтинг остался по прежнему высоким и даже обогнал предыдущие сезоны
votes_col = None for col in ['Votes', 'votes', 'Голоса', 'Rating Count', 'rating_count']: if col in self.df.columns: votes_col = col break matplotlib.rcParams['font.family'] = 'Helvetica' df_analysis = self.df.copy () yearly_stats = df_analysis.groupby ('Year_of_prod').agg ({ votes_col: ['sum', 'mean', 'count'], 'Stars': 'mean' }).round (2) yearly_stats.columns = ['total_votes', 'avg_votes_per_ep', 'episode_count', 'avg_rating'] yearly_stats = yearly_stats.sort_index () start_year, end_year = 1994, 2004 years_range = range (start_year, end_year + 1) all_years_df = pd.DataFrame (index=years_range, columns=yearly_stats.columns).fillna (0) yearly_stats = yearly_stats.combine_first (all_years_df).loc[years_range] fig, ax = plt.subplots (figsize=(12, 6)) ax.set_xlabel ('Год выпуска', fontsize=12) ax.set_ylabel ('Общее количество голосов', fontsize=12, color='#FFB347') ax.tick_params (axis='y', labelcolor='#FFB347') ax2 = ax.twinx () ax2.set_ylabel ('Средний рейтинг', fontsize=12, color='#4A90E2') ax2.tick_params (axis='y', labelcolor='#4A90E2') plt.title ('Популярность «Друзей» по годам (1994-2004)\nГолоса vs Рейтинг', fontsize=14, fontweight='bold', pad=15 for year, votes in zip (yearly_stats.index, yearly_stats['total_votes']): if votes > 0: ax.text (year, votes * 1.02, f'{votes:,.0f}'.replace (', ', ' '), ha='center', va='bottom', fontsize=8) for bar in bars: height = bar.get_height () if height > 0: ax2.text (bar.get_x () + bar.get_width () / 2, height + 0.05, f'{height:.2f}', ha='center', va='bottom', fontsize=8) lines_labels = [ax.get_legend_handles_labels () for ax in [ax, ax2]] lines, labels = [sum (lol, []) for lol in zip (*lines_labels)] ax.legend (lines, labels, loc='upper left', fontsize=10) ax.set_xticks (yearly_stats.index) ax.set_xticklabels (yearly_stats.index, rotation=45) ax.grid (True, alpha=0.3, linestyle='--') plt.tight_layout () plt.show ()
Гистограмма
Кульминации и провалы: сила эмоциональных пиков
Анализ выявляет четкие эмоциональные пики, совпадающие с ключевыми событиями в жизни героев:
Самые высокооцененные эпизоды (рейтинг 9.5+) — это почти всегда финалы сезонов или поворотные точки в отношениях: предложение Чендлера, финал сериала, свадьба Моники и Чендлера, эпизод с эмбрионами. Это доказывает, что зрители особенно ценили сильные эмоциональные payoff и награду за многолетнюю вовлеченность в судьбы героев.
Несколько эпизодов с рейтингом ниже 8.0 (например, «The One with the Invitation» или «The One with Mac and C.H.E.E.S.E.») чаще всего являются «эпизодами-мостиками», отходящими от главных сюжетных арок, что указывает на предпочтение аудитории к прогрессу в центральных историях.
matplotlib.rcParams['font.family'] = 'Helvetica' df_sorted = self.df.sort_values (['Season', 'Episode Number']) plt.figure (figsize=(15, 6)) ax = plt.gca () episode_numbers = range (len (df_sorted)) bars = ax.bar (episode_numbers, df_sorted['Stars'], width=1.0, alpha=0.7) ax.set_title (f’Рейтинг всех эпизодов «Друзей» ({len (df_sorted)} эпизодов)', fontsize=14, fontweight='bold') ax.set_xlabel ('Эпизоды', fontsize=12) ax.set_ylabel ('Рейтинг IMDb', fontsize=12) ax.set_ylim (7, 10) overall_mean = df_sorted['Stars'].mean () ax.axhline (y=overall_mean, color='red', linestyle='--', linewidth=1.5, label=f’Среднее: {overall_mean:.2f}') ax.set_xticks ([]) for i, (_, row) in enumerate (df_sorted.iterrows ()): if row['Season'] ≠ df_sorted.iloc[i-1]['Season'] if i > 0 else True: ax.axvline (x=i, color='gray', alpha=0.3, linewidth=1) ax.text (i + len (df_sorted[df_sorted['Season'] == row['Season']])/2, 9.8, f’Сезон {int (row[«Season»])}', ha='center', fontsize=9, fontweight='bold') ax.legend () ax.grid (True, alpha=0.3, linestyle='--', axis='y') plt.tight_layout () plt.show ()
Вывод
Анализ рейтингов доказывает, что успех «Друзей» был основан не на случайности или сиюминутной моде, а на фундаменте исключительной стабильности, глубокой эмоциональной связи с героями и мастерском управлении сюжетными арками.
Сериал демонстрировал высочайшее качество в самый критический период (середину трансляции), а его культовый финал стал закономерным итогом десятилетия безупречной работы, навсегда закрепившим «Друзей» в истории телевидения. Данные — это холодное, но убедительное подтверждение того, что чувствовали миллионы зрителей: этот сериал был и остается эталоном.
Инструменты
—https://www.kaggle.com/datasets/rezaghari/friends-series-dataset: датасет по друзьям. Первичная основа для всего анализа.
— Язык и библиотеки: Pandas — загрузка, очистка и преобразование табличных данных. Matplotlib — создание и кастомизация всех графиков в соответствии с визуальным стилем. NumPy — выполнение вспомогательных математических операций.
— Google Colab: облачная среда для написания, выполнения кода и визуализации результатов.
— Deepseek: использовался для структурирования логики проекта и составления общего плана анализа.