Original size 1024x1365

Анализ данных о книгах

PROTECT STATUS: not protected
3

Введение

Темой для этого проекта я решила выбрать книги, так как чтение — это то, чем занимались люди много лет назад и остается популярным и в наши дни. У меня много читающих знакомых, а у некоторых даже есть опыт в написании собственных произведений. Я решила найти датасет и, проанализировав его, понять, что влияет на популярность книги и выявить самые известные книги и авторов. На сайте Kaggle я нашла подходящий датасет с информацией по более чем 11000 книгам с сайта Goodbook. Ссылка на датасет

Типы диаграмм: 1. Круговая диаграмма — «Топ-10 книг по количеству рецензий» 2. Горизонтальная столбчатая диаграмма — «Топ-10 самых популярных авторов» 3. Столбчатая диаграмма — «Зависимость рейтинга книги от года» 4. Диаграмма рессеяния — «Зависимость популярности книги от количества страниц»

Этапы работы

Оформление

big
Original size 2480x1750

При создании цветовой палитры я вдохновлялась картиной Дейнека А. А. «Портрет девушки с книгой» и в целом использовала оттенки коричневого и желтого, которые ассоциируются у меня с эстетикой старых книжек обложек и пожелтевших страниц. Я также решила взять шрифт Journal Sans, который часто используется в журналах и как мне кажется соединяет в себе печатную эстетику и при этом выглядит современно.

Обложка для проекта была сгенерирована с помощью Recraft.Ai. промпт: a close-up picture of lots of books that fill the entire frame

Импорт данных и библиотек

В исходном датасете в одной из строк была ошибка, которая не позволяла его обработать, поэтому я обратилась к Chat GPT, который помог мне ее исправить с помощью добавления команды on_bad_lines='skip'. Также он помог мне импортировать библиотеку matplotlib.ticker, потому что я захотела изменить шаг значений на осях в одном из графиков, и модуль font_manager, чтобы я могла использовать свой шрифт.

1 промпт: устрани следующую ошибку в коде: ParserError: Error tokenizing data. C error: Expected 12 fields in line 3350, saw 13 2 промпт: сделай так, чтобы количество оценок на горизонтальной оси отображалось с шагом 500000 3 промпт: теперь перепиши этот код так, чтобы в графике все подписи к графикам были сделаны шрифтом JRS55___.otf

Original size 1194x379

Топ-10 книг по колличеству рецензий

Мне захотелось узнать, какие книги больше всего запали в душу читателям и мне показалось, что количество рецензий наиболее ярко отражает, вызвала ли книга какие-то эмоции у читателя, будь то положительные или отрицательные, поэтому я решила составить топ-10 книг по количеству написанных на них рецензий. Я выбрала круговую диаграмму, потому что мне показалось, что так топ будет выглядеть наиболее ярко и наглядно.

Original size 1874x1220

При создании диаграммы мне не понравилось, что количество рецензий отображено в процентах относительно других книг внутри топа, поэтому я снова обратилась к Chat GPT, скинув ему текущий код и написав промпт ниже, чтобы он помог мне отобразить числовое количество рецензий.

промпт: перепиши код так чтобы на круговой диаграмме вместо процентного соотношения было подписано количество рецензий

Также у меня была проблема с тем, что текст при экспорте png изображения графика обрезался, Chat GPT мне также помог с ней.

промпт: исправь код так, чтобы текст на картинке не обрезался при экспорте изображения графика

Original size 2660x300

Из диаграммы видно, что больше всего эмоциональный отклик среди читателей вызвали «Сумерки». На втором месте оказался «Книжный вор», а на третьем — «Дающий». Всем известный «Гарри Поттер», к моему удивлению, занял лишь 10 место.

Топ-10 самых популярных авторов

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

Original size 2786x1294

После написания кода мне не понравилось, что авторы показаны в порядке возрастания, мне показалось, что будет более наглядно, если они будут в порядке убывания, и чтобы это исправить снова обратилась к Chat GPT, который помог мне добавить строчку plt.gca ().invert_yaxis (). промпт: измени код, чтобы имена имена авторов распологались по вертикальной оси от автора у которого больше всего оценок до автора у которого меньше всего оценок

Именно при создании этого графика я захотела управлять шагом на осях, потому что изначально он мне показался слишком широким. С этим, как я указывала в разделе про импорт данных мне также помог Chat GPT, импортировав библиотеку matplotlib.ticker и добавив строчку plt.gca ().xaxis.set_major_locator (mticker.MultipleLocator (500000)) в сам код для создания графика. промпт: сделай так, чтобы количество оценок на горизонтальной оси отображалось с шагом 500000

Original size 1353x627

Из диаграммы мы можем видеть, что самой популярњой является Джоан Роулинг, автор серии книг о Гарри Поттере. На втором месте Джон Толкин, автор «Властелина Колец», а на третьем — Стефани Майер — автор «Сумерек». Таким образом, самые популярные писатели — авторы всемирно известных серий книг, по которым сняли не менее известные серии фильмов.

Зависимость рейтинга книги от года

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

Original size 2414x1294

В исходном датасете была указана полная дата публикации, что плохо подходит для отображения на графике. Чтобы корректно обработать эти данные я использовала Chat GPT которому отправила предидущий код и следующие промпты:

промпт: у тебя есть файл csv с информацией про книги. в нем есть столбец «publication_date» в котором отображена дата публикации в формате 9/16/2006. ты хочешь сделать график на Python «Зависимомть рейтинга книги от года». перепиши код ниже, чтобы зависимость была не от полной даты, а только от года

Также в некоторых строчках в этом же столбце были ошибки. Чтобы их исправить я также обратилась к Chat GPT.

промпт: тебе выдало следующую ошибку: ValueError: day is out of range for month, at position 8177. You might want to try:  — passing format if your strings have a consistent format;  — passing format='ISO8601' if your strings are all ISO8601 but not necessarily in exactly the same format;  — passing format='mixed', and the format will be inferred for each element individually. You might want to use dayfirst alongside this

Original size 1428x695

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

Зависимость популярности книги от количества страниц

Также мне стало интересно, влияет ли как-то количество страниц в книге на ее популярность. Для измерения популярности книги я, как и в случае с авторами, опиралась на количество оценок на книге. Для этого графика я решила использовать диаграмму рассеяния, которая лучше всего показывает в каком диапазоне сконцентрировано большинство оценок.

Original size 2433x1294

При написании кода выяснилось, что в названии столбца «num_pages» есть ошибка, которую мне помог выявить и исправить Chat GPT. Я скинула ему csv файл датасета, и он выявил, что в названии есть лишний пробел и исправил это путем добавления строки df = df.rename (columns={» num_pages»: «num_pages"})

промпт: перепиши код для диаграммы рассеивания, основываясь на файле, исправь ошибку KeyError: 'num_pages'

Original size 1704x552

По этой диаграмме хорошо видно, что наиболее популярны книги в диапазоне от 200 до 500 страниц. Мне кажется это довольно логичным, так как книги слишком большого объема трудно поддаются чтению и не все захотят даже начинать читать длинную книгу. И наоборот, слишком короткие книги также кажутся менее привлекательными, потому что, скорее всего кажутся несерьезными и не успевают зацепить читателя.

Выводы

Проанализировав данные датасета, я могу предоставить читателям ряд рекомендаций для выбора книги. Я выявила топ-10 книг, на которые написано больше всего рецензий, на первом месте в котором оказались «Сумерки». Также я составила топ-10 самых популярных авторов, первое место в котором заняла Джоан Роулинг. Кроме того, стало понятно, что качество книги не зависит от года ее написания и утверждение, что раньше книги были лучше, неправда. Помимо этого, я выявила, что популярность книги зависит от количества страниц в ней, поэтому я бы рекомендовала читателям обращать внимание на книги в диапазоне от 200 до 500 страниц. Эта информация также может быть полезна для писателей. Они могут учитывать при написании произведений зависимость популярности от количества страниц и ориентироваться на творчество самых популярных авторов, чтобы добиться известности для себя и своего творчества.

Анализ данных о книгах
3
We use cookies to improve the operation of the HSE website and to enhance its usability. More detailed information on the use of cookies can be fou...
Show more