Original size 1140x1600

Анализ базы данных с фильмами

PROTECT STATUS: not protected

Концепция

Я решил проанализировать базу данных с кино рекомендациями и сделать:

Распределение фильмы по жанрам

Топ 10 лучших фильмов исходя из базы

Топ 10 худших фильмов исходя из базы

https://github.com/jeknov/movieRec/blob/master/movies.csv

Для анализа я использовал

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

Точечный график для отображения соотношения количества фильмов и жанров.

Вертикальный столбчатый график для топ-10 лучших и худших фильмов.

Для того чтобы вывести топ 10 лучших и худших фильмов из базы я воспользовался ChatGPT

Я попросил его структурировать базу и вывести топ 10.

Код:

import pandas as pd import matplotlib.pyplot as plt

movies_url = «https://raw.githubusercontent.com/jeknov/movieRec/master/movies.csv" ratings_url = «https://raw.githubusercontent.com/jeknov/movieRec/master/ratings.csv"

movies = pd.read_csv (movies_url) ratings = pd.read_csv (ratings_url)

movie_ratings = pd.merge (movies, ratings, on='movieId')

average_ratings = movie_ratings.groupby ('title')['rating'].mean ()

top_10_movies = average_ratings.nlargest (10)

plt.figure (figsize=(12, 8)) top_10_movies.sort_values ().plot (kind='barh', color='skyblue') plt.title ('Топ-10 лучших фильмов') plt.xlabel ('Средний рейтинг') plt.ylabel ('Фильм') plt.show ()

Топ 10 Лучших

Код:

import pandas as pd import matplotlib.pyplot as plt

movies_url = «https://raw.githubusercontent.com/jeknov/movieRec/master/movies.csv" ratings_url = «https://raw.githubusercontent.com/jeknov/movieRec/master/ratings.csv"

movies = pd.read_csv (movies_url) ratings = pd.read_csv (ratings_url)

movie_ratings = pd.merge (movies, ratings, on='movieId')

average_ratings = movie_ratings.groupby ('title')['rating'].mean ()

bottom_10_movies = average_ratings.nsmallest (10)

plt.figure (figsize=(12, 8)) bottom_10_movies.sort_values ().plot (kind='barh', color='lightcoral') plt.title ('Топ-10 худших фильмов') plt.xlabel ('Средний рейтинг') plt.ylabel ('Фильм')

for index, value in enumerate (bottom_10_movies): plt.text (value, index, str (round (value, 2)))

plt.show ()

Топ 10 Худших

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

Код: import pandas as pd import matplotlib.pyplot as plt

url = «https://raw.githubusercontent.com/jeknov/movieRec/master/movies.csv" data = pd.read_csv (url)

genre_counts = data['genres'].str.split ('|', expand=True).stack ().value_counts ()

plt.figure (figsize=(10, 6)) genre_counts.plot (kind='barh') plt.title ('Распределение фильмов по жанрам') plt.xlabel ('Количество фильмов') plt.ylabel ('Жанр') plt.show ()

Original size 946x547

Так же я сделал точечный график с количеством фильмов определенного жанра.

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

Ссылка на диск с кодом и базой.

Анализ базы данных с фильмами
Project created at 25.09.2024
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