Original size 1140x1600

Анализ самых популярных книг для обмена

PROTECT STATUS: not protected

Вступление

Книги — это моя любовь. В детстве меня порой нельзя было оторвать от интересной истории. А когда кто-то дарит мне книгу или я выбираю её в подарок — это отдельная радость. И когда я наткнулась на датасет на Kaggle со списком 1000 самых популярных книг для обмена, мне стало интересно исследовать данные из него и выявить основные черты самых читаемых произведений.

Для анализа были выбраны следующие темы:

  1. Самые популярные книги по рейтингу.
  2. Какие слова-теги при описании книг встречаются чаще всего?
  3. Связь между количеством страниц и рейтингом по возрастным группам.
  4. Самые популярные авторы.
  5. Соответствие статуса бестселлера и наличия экранизации.

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

Original size 3360x2240

В качестве шрифта я выбрала Educational Gothic, так как он одновременно и достаточно читабельный, и напоминающий заголовки книг. Цветовая палитра была составлена при помощи Adobe Color по фото, приведённом выше. Она отсылает к книжным переплётом и уютной атмосфере среди книжных полок.

Столбчатые диаграммы

Original size 2370x1580

На этой диаграмме представлены 20 книг с самым высоким рейтингом. Показатели отличаются незначительно и график получился плавным и напоминающим книги, стоящие на полке. Лидирующую позицию занимает «Маленький принц». Интересно, что в этом списке книги про Гарри Поттера встречаются целых три раза, однако большая часть произведений всё же ориентирована на более взрослую аудиторию.

top_20 = df.sort_values (by='rating_average', ascending=False).head (20)

plt.figure (figsize=(12, 8), facecolor='#FBEDE2')

diagram = sns.barplot (x='Название_ру', y='rating_average', data=top_20, palette=my_colors, hue='title', legend=False)

diagram.set_facecolor ('#FBEDE2')

font_path = '/content/EDUCATIONALGOTHIC-REGULAR.OTF' custom_font = fm.FontProperties (fname=font_path) title_font = fm.FontProperties (fname=font_path, size=20)

plt.tight_layout () plt.show (

Original size 2374x1580

Однако, если смотреть на место книги в рейтинге, то перед нами складывается немного другая ситуация. Вместо «Маленького принца» лидирующую позицию занимает «Гарри Поттер и философский камень». Некоторые книги при этом остаются в топ-20 в обоих графиках, как, например, «1984» или «Джейн Эйр» (хотя они меняют свои позиции). Некоторые отображаются только в одном из двух случаев, из чего можно сделать вывод, что не всегда самые высокие по рейтингу книги могут быть настолько же популярны.

plt.figure (figsize=(12, 8), facecolor='#FBEDE2')

top = df.sort_values (by='id', ascending=True).head (20) diagram = sns.barplot (x='Название_ру', y='id', data = top, palette=my_colors, hue='title', legend=False)

diagram.set_facecolor ('#FBEDE2')

plt.xticks (rotation=45, ha='right', fontsize=10)

font_path = '/content/EDUCATIONALGOTHIC-REGULAR.OTF' custom_font = fm.FontProperties (fname=font_path) title_font = fm.FontProperties (fname=font_path, size=20)

Облако слов

Original size 2364x1202

Чтобы конкретнее узнать, о чём самые популярные для обмена книги, я воспользовалась облаком слов и выявила самые частые слова, которые встречаются в тегах к произведениям. Оказалось, что больше всего для обмена предпочитают классические книги, связанные с романами, историей и волшебством. При этом приключения не так сильно популярны. Из 990 книг, только у 37 есть этот тэг.

words = list (df['tags'].str.split (', ')) words = [word for sublist in words for word in sublist] amount = {} for x in words: if x in amount: amount[x] += 1 else: amount[x] = 1 sorted (list (amount.items ()), key = lambda x: -x[1])[: 20] frequencies = dict (amount)

from wordcloud import WordCloud wordcloud = WordCloud (width=900, height=450, background_color='#FBEDE2', color_func=my_color_func, font_path=font).generate_from_frequencies (frequencies)

plt.figure (figsize=(15, 10)) plt.imshow (wordcloud, interpolation='bilinear') plt.axis («off») plt.show ()

График рассеивания

Original size 2018x1136

Мне стало также интересно, зависит ли количество страниц в книгах от возрастной категории, для которой они предназначены. Исходя из графика видно, что большая часть произведений сосредоточена в районе от 200 до 600 страниц. При этом действительно есть некоторая зависимость страниц от возраста. Все, содержащие более 800 страниц относятся к взрослой категории. Детские книги в основном доходят до 400 страниц, хотя и есть единицы, доходящие практически до 800. Книги для молодёжи по количеству страниц занимают среднюю позицию.

import seaborn as sns

translation2 = { «Adult»: «Взрослые», «Children»: «Дети», «Young Adult»: «Молодёжь и подростки"}

df['категория'] = df['age_category'].map (translation2)

df.groupby ('категория')['pageCount'].mean ()

plt.figure (figsize=(12, 6), facecolor='#FBEDE2')

sns.scatterplot (data=df, x='pageCount', y='rating_average', hue='категория', palette=my_colors, alpha=0.6)

Круговая диаграмма

Original size 990x832

Среди самых популярных авторов, книгами которых люди обмениваются оказались Стивен Кинг, Терри Пратчетт, и Дж. К. Роулинг. Этих писателей объединяет век, в котором они творили (19 век), а также они — выходцы из англоязычных стран.

author_counts = df['автор'].value_counts ()

top_authors = author_counts.head (10)

others_count = author_counts.iloc[10:].sum () if others_count > 0: top_authors['Другие авторы'] = others_count

plt.figure (figsize=(12, 10), facecolor='#FBEDE2')

plt.pie (top_authors, labels=top_authors.index, autopct='%1.1f%%', startangle=140, colors=my_colors)

plt.title ('Самые популярные авторы', color='#401801', fontproperties=title_font, fontsize=15, pad=20)

plt.axis ('equal')

plt.show ()

Тепловая карта

Original size 1856x1762

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

df['бестселлер'] = df['bestseller_status'].replace (translation4) df['фильм'] = df['adapted_to_movie'].replace (translation4)

ct = pd.crosstab (df['бестселлер'], df['фильм'])

plt.figure (figsize=(12, 10), facecolor='#FBEDE2')

sns.heatmap (ct, annot=True, fmt='d', cmap=my_cmap)

plt.show ()

Заключение

Таким образом, в результате анализа было выяснено, что самой популярной книгой на основе датасета является «Гарри Поттер и философский камень», а самый популярный автор — Стивен Кинг. Чаще всего люди обмениваются классическими книгами, содержащими в себе большое количество тем, в том числе и «вечных». Почти все книги, вошедшие в датасет — бестселлеры, но не все имеют экранизацию. А также я ещё раз нашла подтверждение тому, что при выборе книги для какой-то конкретной возрастной категории, нужно учитывать её объём.

Инструменты: Google Colab — создание кода и графиков Leonardo.ai — генерация картинки для обложки Upscayl — улучшение качества изображений Chat gpt — помощь в коде

Блокнот и датасет

Анализ самых популярных книг для обмена
Project created at 16.01.2026
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