Original size 2480x3500

Анализ дата базы фильмов

PROTECT STATUS: not protected
7

Контекст

Я решила проанализировать дата базу фильмов. За основу взяла TMDB с сайта Kagle. Сделаю оговорку, база не супер актуальная, но может дать много интересной информации.

Работа

Для начала я структурировала данные и проверила что включают в себя файлы с сайта.

import pandas as pd

file_paths = [ r’C:\Users\User\Desktop\film\tmdb_5000_credits.csv', r’C:\Users\User\Desktop\film\tmdb_5000_movies.csv' ]

df_credits = pd.read_csv (file_paths[0]) df_movies = pd.read_csv (file_paths[1])

print («Информация о данных в файле tmdb_5000_credits.csv:») print (df_credits.info ()) print ()

print («Информация о данных в файле tmdb_5000_movies.csv:») print (df_movies.info ())

Итог

Информация о данных в файле tmdb_5000_credits.csv:

RangeIndex: 4803 entries, 0 to 4802 Data columns (total 4 columns): Column Non-Null Count Dtype


0 movie_id 4803 non-null int64 1 title 4803 non-null object 2 cast 4803 non-null object 3 crew 4803 non-null object dtypes: int64(1), object (3) memory usage: 150.2+ KB None

Информация о данных в файле tmdb_5000_movies.csv:

RangeIndex: 4803 entries, 0 to 4802 Data columns (total 20 columns): Column Non-Null Count Dtype


0 budget 4803 non-null int64 1 genres 4803 non-null object 2 homepage 1712 non-null object 3 id 4803 non-null int64 4 keywords 4803 non-null object 5 original_language 4803 non-null object 6 original_title 4803 non-null object 7 overview 4800 non-null object 8 popularity 4803 non-null float64 9 production_companies 480

После чего я попросила ChatGPT структурировать и изобразить графики с данными

Гистограмма распределения рейтингов фильмов

plt.figure (figsize=(10, 6)) sns.histplot (df_movies['vote_average'], bins=20, kde=True, color='b') plt.title ('Распределение рейтингов фильмов') plt.xlabel ('Рейтинг') plt.ylabel ('Частота') plt.grid (True) plt.show ()

Original size 859x545

Исходя из данного графика мы можем понять что большинство фильмов оцениваются в среднем на 6-7

Столбчатая диаграмма с жанрами

Преобразование списка жанров в отдельные строки genres = df_movies['genres'].apply (lambda x: [genre['name'] for genre in eval (x)])

Создание отдельного DataFrame с жанрами df_genres = pd.DataFrame (genres.tolist (), index=df_movies['title']).stack ().reset_index (level=1, drop=True) df_genres.name = 'genre'

Построение графика с жанрами plt.figure (figsize=(12, 8)) sns.countplot (y=df_genres, order=df_genres.value_counts ().index, palette='viridis') plt.title ('Распределение фильмов по жанрам', fontsize=15) plt.xlabel ('Количество фильмов', fontsize=12) plt.ylabel ('Жанр', fontsize=12) plt.xticks (fontsize=11) plt.yticks (fontsize=11) plt.tight_layout () plt.show ()

Original size 1189x790

Данный график нам даёт понять что самый популярный жанр это Драма, а самый не популярный TV Movie. Хотя мне всегда казалось что Боевики и Комедия соперничают за первое место.

Рейтинг самых бюджетных фильмов TMDB

Отбор фильмов с положительным бюджетом и выбор топ-10 с наименьшим бюджетом low_budget_movies = df_movies[df_movies['budget'] > 0][['title', 'budget']].sort_values ('budget').head (10)

Оформление графика plt.figure (figsize=(12, 8)) sns.barplot (x='budget', y='title', data=low_budget_movies, palette='Greens_r') plt.title ('Топ-10 фильмов с наименьшим бюджетом', fontsize=15) plt.xlabel ('Бюджет, в десятках миллионов $', fontsize=12) plt.ylabel ('Название фильма', fontsize=12) plt.xticks (fontsize=11) plt.yticks (fontsize=11) plt.grid (axis='x') plt.tight_layout () plt.show ()

Original size 1190x790

График с топом самых худших фильмов

worst_movies = df_movies[df_movies['vote_average'] > 0][['title', 'vote_average']].sort_values ('vote_average').head (10)

Оформление графика plt.figure (figsize=(12, 8)) sns.barplot (x='vote_average', y='title', data=worst_movies, palette='Reds_r') plt.title ('Топ-10 худших фильмов', fontsize=15) plt.xlabel ('Средний рейтинг', fontsize=12) plt.ylabel ('Название фильма', fontsize=12) plt.xticks (fontsize=11) plt.yticks (fontsize=11) plt.grid (axis='x') plt.tight_layout () plt.show ()

Original size 1189x790

Этот график особо не даёт какой-то информации по фильмам, но мы можем увидеть худших из худших. Если интересно, можно посмотреть на досуге.

Гистограмма распределения длительности фильмов

Преобразование длительности фильмов в минутах df_movies['runtime'] = df_movies['runtime'].fillna (0).astype (int)

plt.figure (figsize=(10, 6)) sns.histplot (df_movies['runtime'], bins=30, kde=True, color='g') plt.title ('Распределение длительности фильмов') plt.xlabel ('Длительность, минуты') plt.ylabel ('Частота') plt.grid (True) plt.show ()

Original size 862x545

Тут мы можем понять что большинство фильмов не длиннее 100 минут.

Анализ дата базы фильмов
7
We use cookies to improve the operation of the website and to enhance its usability. More detailed information on the use of cookies can be fo...
Show more