数据分析案例-图书书籍数据可视化分析(文末送书)

news2024/11/18 15:29:11

 

🤵‍♂️ 个人主页:@艾派森的个人主页

✍🏻作者简介:Python学习者
🐋 希望大家多多支持,我们一起进步!😄
如果文章对你有帮助的话,
欢迎评论 💬点赞👍🏻 收藏 📂加关注+


目录

1.项目背景

2.数据集介绍

3.技术工具

4.导入数据

5.数据可视化

文末推荐与福利


1.项目背景

        随着信息技术的迅猛发展和数字化时代的来临,图书出版、销售与阅读方式均发生了翻天覆地的变化。传统的纸质书籍面临着电子书、在线阅读等新型阅读方式的挑战。在这一大背景下,对于图书市场、读者阅读习惯以及书籍流通情况的数据分析变得尤为重要。

        图书书籍数据可视化分析实验旨在通过收集、整理和分析大量的图书相关数据,利用数据可视化技术,将复杂的数据转化为直观、易理解的图形和图像。这样可以帮助出版社更好地了解市场趋势,优化图书出版策略;帮助书店和网上书城精确掌握库存和销售情况,调整进货和销售策略;同时,也可以帮助读者更清晰地了解自己的阅读习惯和偏好,以便做出更合适的阅读选择。

        此外,对于图书馆和学术研究机构而言,图书书籍数据可视化分析还有助于提高图书管理和利用的效率,促进学术研究和知识传播。例如,通过分析图书馆的借阅数据,可以了解读者的借阅习惯和需求,进而优化图书采购和馆藏结构;通过分析学术著作的引用数据,可以评估研究成果的影响力和学术价值。

        综上所述,图书书籍数据可视化分析实验不仅具有重要的商业价值,还有助于推动图书行业的创新发展和学术研究的进步。在这一背景下,开展此类实验显得尤为必要和迫切。

2.数据集介绍

        数据集来源于Kaggle,这个数据集包含了从wonderbk.com(一个受欢迎的在线书店)抓取的信息。该数据集包含103,063本书的详细信息,其中包含标题、作者、描述、类别、出版商、起始价格和出版日期等关键属性。

Title:书的标题。

Authors:本书的作者。

Description :对本书的简要描述。

Category:书籍所属的类别或流派。

Publisher:负责本书的出版社。

Price:书籍的初始价格。

Publish Date:出版年份。

3.技术工具

Python版本:3.9

代码编辑器:jupyter notebook

4.导入数据

import warnings
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import seaborn as sns
sns.set(font='SimHei')
warnings.filterwarnings('ignore')

df = pd.read_csv('BooksDataset.csv')
df.head()

查看数据大小 

 查看数据基本信息

查看描述性统计

查看缺失值情况

删除缺失值

检测是否存在重复值

 删除重复值

处理变量

# 处理作者这一列数据,提取出作者名
df['Authors'] = df['Authors'].str.replace(r'^By\s+', '', regex=True)
# 处理价格
df['Price'] = df['Price'].apply(lambda x:float(x.split('$')[1].replace(',','')))
# 发布年份
df['Publish Date'] = df['Publish Date'].apply(lambda x:int(x.split(', ')[-1].split(' ')[-1]))

5.数据可视化

df['Authors'] = df['Authors'].str.split(',').apply(lambda x: ' '.join(reversed(x)) if len(x) > 1 else x[0])
# 显示清洗后的前10位作者
top_10_authors = df['Authors'].value_counts().head(10)
# 十大高产作家(条形图)
plt.figure(figsize=(10, 6))
top_10_authors.plot(kind='bar', color='orange')
plt.title('Top 10 Prolific Authors')
plt.xlabel('Authors')
plt.ylabel('Number of Books')
plt.xticks(rotation=45, ha='right')
plt.tight_layout()
plt.show()

# 不同作者的平均价格(条形图)
average_prices_by_author = df.groupby('Authors')['Price'].mean().sort_values(ascending=False).head(10)

plt.figure(figsize=(10, 6))
average_prices_by_author.plot(kind='bar', color='green')
plt.title('Average Prices by Top 10 Authors')
plt.xlabel('Authors')
plt.ylabel('Average Price ($)')
plt.xticks(rotation=45, ha='right')
plt.tight_layout()
plt.show()

top_prolific_authors = df['Authors'].value_counts().head(10)

plt.figure(figsize=(10, 6))
sns.barplot(x=top_prolific_authors.values, y=top_prolific_authors.index, palette='coolwarm')
plt.title('Top 10 Prolific Authors')
plt.xlabel('Number of Books')
plt.ylabel('Authors')
plt.tight_layout()
plt.show()

average_prices_by_category = df.groupby('Category')['Price'].mean().sort_values(ascending=False)
top_10_categories_by_price = average_prices_by_category.head(10)

# 按平均价格可视化前10个类别(条形图)
plt.figure(figsize=(10, 6))
sns.barplot(x=top_10_categories_by_price.values, y=top_10_categories_by_price.index, palette='viridis')
plt.title('Top 10 Categories by Average Price')
plt.xlabel('Average Price ($)')
plt.ylabel('Category')
plt.tight_layout()
plt.show()

top_publishers = df['Publisher'].value_counts().head(10)

plt.figure(figsize=(8, 8))
plt.pie(top_publishers, labels=top_publishers.index, autopct='%1.1f%%', startangle=140)
plt.title('Top 5 Publishers Distribution')
plt.tight_layout()
plt.show()

from wordcloud import WordCloud

cleaned_descriptions = df['Description'].dropna().tolist()
text = ' '.join(cleaned_descriptions)
wordcloud = WordCloud(width=800, height=400, background_color='white').generate(text)

plt.figure(figsize=(12, 8))
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.title('Word Cloud of Book Descriptions')
plt.tight_layout()
plt.show()

filtered_years = df[(df['Publish Date'] > 1950)&(df['Publish Date'] < 2024)]
yearly_counts_after_1950 = filtered_years['Publish Date'].dropna().value_counts().sort_index()

# 由于没有足够的1950年以前的数据,所以绘制1950年以后的趋势图
plt.figure(figsize=(10, 6))
yearly_counts_after_1950.plot(kind='line', marker='o', color='blue')
plt.title('Book Releases Over the Years (After 1950)')
plt.xlabel('Year')
plt.ylabel('Number of Books Released')
plt.grid(True)
plt.tight_layout()
plt.show()

 文末推荐与福利

Excel高效办公:文秘与行政办公(AI版)》免费包邮送出3本!

内容简介:      

        随着信息技术的快速发展,Excel作为一款功能强大的电子表格软件,已经被广泛应用于文秘与行政办公领域。Excel不仅可以帮助文秘人员和行政助理高效地处理数据、制作报表和统计图表,而且还可以自动化处理各种日常工作,从而节省时间和精力,提高工作效率。

        本书还创新地将ChatGPT引入到学习Excel行政与文秘技能教学中,其提问与使用方式同样适用于国内常用AI语言大模型,如百度的“文心一言”、科大讯飞的“星火”大模型。本书先通过 ChatGPT认识和了解文秘与行政工作中的基础知识,再根据实际的工作案例,讲述了在文秘与行政工作中使用Excel制作各种办公表格文档的方法与工作技能。

        本书既适合在公司中从事文秘与行政工作的人员学习,也适合作为广大职业院校文秘与行政相关专业的学习用书,同时还可以作为文秘与行政技能培训教材。

编辑推荐:     

★超实用:通过30多个实战案例和操作技巧,使读者能够快速上手并灵活运用AI工具提高办公效率。

★巨全面:内容设计从文秘与行政管理工作实际出发,涵盖工作中各项事务的数据统计、分析与处理等要求的全方面内容。

★真好懂:一步一图的操作讲解,一看就懂,思路清晰,老板要的数据统计、分析、结论全都有。

★高回报:看完本书,菜鸟变高手,成为制作各种文档的多面手,零门槛提高文秘与行政办公硬核能力。

  • 抽奖方式:评论区随机抽取3位小伙伴免费送出!
  • 参与方式:关注博主、点赞、收藏、评论区评论“人生苦短,拒绝内卷!”(切记要点赞+收藏,否则抽奖无效,每个人最多评论三次!
  • 活动截止时间:2024-1-22 20:00:00
  • 当当购买链接:http://product.dangdang.com/29658186.html

    京东购买链接:https://item.jd.com/13953793.html

 名单公布时间:2024-1-22 21:00:00 

资料获取,更多粉丝福利,关注下方公众号获取

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1395677.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

iPhone解锁工具---AnyMP4 iPhone Unlocker 中文

AnyMP4 iPhone Unlocker是一款功能强大的iPhone解锁软件&#xff0c;旨在帮助用户轻松解锁iPhone&#xff0c;从而在电脑上进行数据备份、传输和编辑。该软件支持多种iPhone型号&#xff0c;包括最新的iPhone 14系列&#xff0c;并支持多种解锁模式&#xff0c;如屏幕密码解锁、…

PyTorch各种损失函数解析:深度学习模型优化的关键(2)

目录 详解pytorch中各种Loss functions mse_loss 用途 用法 使用技巧 注意事项 参数 数学理论公式 代码演示 margin_ranking_loss 用途 用法 使用技巧 注意事项 参数 数学理论公式 代码演示 multilabel_margin_loss 用途 用法 使用技巧 注意事项 参数 …

最新开源付费小剧场短剧小程序源码/影视小程序源码/带支付收益+运营代理推广等功能【搭建教程】

源码介绍&#xff1a; 最新开源付费小剧场短剧小程序源码、影视小程序源码&#xff0c;它有带支付收益、运营代理推广等功能&#xff0c;另有搭建教程好测试上手。仿抖音滑动小短剧影视带支付收益等模式的微信小程序源码。 这是一款功能强大的全开源付费短剧小程序源码&#…

MySQL存储函数与存储过程习题

创建表并插入数据&#xff1a; 字段名 数据类型 主键 外键 非空 唯一 自增 id INT 是 否 是 是 否 name VARCHAR(50) 否 否 是 否 否 glass VARCHAR(50) 否 否 是 否 否 ​ ​ sch 表内容 id name glass 1 xiaommg glass 1 2 xiaojun glass 2 1、创建一个可以统计表格内记录…

protobuf学习日记 | 认识protobuf中的类型

目录 前言 一、标量数据类型 二、protobuf中的 “数组” 三、特殊类型 1、枚举类型 &#xff08;1&#xff09;类型讲解 &#xff08;2&#xff09;升级通讯录 2、Any类型 &#xff08;1&#xff09;类型讲解 &#xff08;2&#xff09;升级通讯录 3、oneof类型 …

【Linux修行路】基本指令

目录 推荐 前言 1、重新认识操作系统 1.1 操作系统是什么? 1.2操作系统的作用 1.3 我们在计算机上的所有操作 1.4 Linux操作的特点 2、Linux基本指令 2.1 ls 指令 2.2 pwd 命令 2.3 cd 指令 2.3.1 Linux中的目录结构 2.3.2 绝对路径和相对路径 2.3.3 cd 指令 …

C++、QT 数字合成游戏

一、项目介绍 数字合成游戏 基本要求&#xff1a; 1&#xff09;要求游戏界面简洁美观&#xff0c;且符合扫雷的游戏风格。 2&#xff09;需要有游戏操作或者规则说明&#xff0c;方便玩家上手。 3&#xff09;需具有开始游戏&#xff0c;暂停游戏&#xff0c;结束游戏等方便玩…

搭建开源数据库中间件MyCat2-配置mysql数据库双主双从

mycat2官网&#xff1a;MyCat2 前言&#xff1a;mycat2下载地址无法访问&#xff0c;不知道是不是被DNS污染了&#xff0c;还是需要搭梯子访问&#xff0c;所以我只能找到1.21的版本进行安装。搭建mycat2的前提是搭建数据库主从复制。 架构&#xff1a;双主双从 配置&#xf…

2018年认证杯SPSSPRO杯数学建模B题(第二阶段)动态模糊图像全过程文档及程序

2018年认证杯SPSSPRO杯数学建模 动态模糊图像复原 B题 动态模糊图像 原题再现&#xff1a; 人眼由于存在视觉暂留效应&#xff0c;所以看运动的物体时&#xff0c;看到的每一帧画面都包含了一段时间内 (大约 1/24 秒) 的运动过程&#xff0c;所以这帧画面事实上是模糊的。对…

CSV转Excel文件(适合大文件转VBA语言)

目录 专栏导读背景1、右击新建一个Excel文件2、点击【开发工具】点击【VB编辑器】3、左边双击【Sheet1】打开代码编辑器&#xff0c;复制下面代码进行粘贴注意修改 路径 4、点击运行&#xff0c;等待即可结尾 专栏导读 &#x1f338; 欢迎来到Python办公自动化专栏—Python处理…

噪声的产生机制和来源

噪声广泛存&#xff0c;噪声按照噪声携带能量的强弱分为功率型噪声和信号型噪声&#xff0c;功率型噪声持续时间短&#xff0c;能量强&#xff0c;对设备的寿命具有很大的影响&#xff0c;而信号型噪声顾名思义来源于信号且作用于信号&#xff0c;本节简述噪声的产生机理和来源…

媒体跟踪软件Ryot

什么是 Ryot &#xff1f; Ryot&#xff08;Roll Y our O wn Tracker&#xff09;&#xff0c;发音为“riot”&#xff0c;旨在成为您需要的唯一自托管跟踪器&#xff01;用于跟踪您生活的各个方面 - 媒体、健身等。 假设您有一个特殊的笔记本&#xff0c;您可以在其中写下您使…

Mybatis之关联

一、一对多关联 eg&#xff1a;一个用户对应多个订单 建表语句 CREATE TABLE t_customer (customer_id INT NOT NULL AUTO_INCREMENT, customer_name CHAR(100), PRIMARY KEY (customer_id) ); CREATE TABLE t_order ( order_id INT NOT NULL AUTO_INCREMENT, order_name C…

翻译: LLM构建 GitHub 提交记录的聊天机器人一 使用 Timescale Vector、pgvector 和 LlamaIndex

1. 检索增强生成 &#xff08;RAG Retrieval Augmented Generation&#xff09; 检索增强生成 &#xff08;RAG Retrieval Augmented Generation&#xff09; 对于增强应用程序开发中的大型语言模型 &#xff08;LLM&#xff09; 至关重要。它用外部数据源补充 LLM&#xff0c…

ChatGPT关键技术、发展方向与应用前景

源自&#xff1a;中国指挥与控制学会 作者&#xff1a;黄海涛 田虎 郑晓龙 曾大军 一、GPT类模型技术发展路径 图1 GPT类模型推出时间线1&#xff0c;2 二、ChatGPT模型的主要技术手段 图2 GPT类模型采用的Transformer解码器模型结构 图3 RLHF迭代训练过程真正推动ChatGPT模型…

物联网协议Coap之C#基于Mozi的CoapServer实现解析

目录 前言 一、C#的Coap Server实现 1、CoapServer相关类 2、主要类解析 3、资源控制器定义 4、ResourceManager管理器 二、CoapServer生命周期 1、Server创建代码 2、服务端创建 3、绑定endpoint 4、准备接收请求 总结 前言 在之前的关于物联网协议的介绍中&#…

ELK日志分析

目录 1.ELK概述 ELK简述 ElasticSearch Kiabana Logstash 可添加其他的组件 Filebeat filebeat结合logstash带来好处 缓存/消息队列&#xff08;redis、kafka、RabbitMQ等&#xff09; Fluentd ELK的好处 完整日志系统基本特征 ELK的工作原理 2.ELK Elasticsearc…

Git提交 ssh: connect to host github.com port 22: Connection timed out解决方案

你们好&#xff0c;我是金金金。 场景 之前都是好好的&#xff0c;不知道今天为什么提交代码就这样了 排查 根据英文可以看出&#xff0c;ssh端口号被拒绝了&#xff0c;22号端口不行&#xff0c;那就换一个端口 造成error的原因 ssh端口被拒绝 解决 找到.ssh文件&#xff…

Producer源码解读

Producer源码解读 在 Kafka 中, 我们把产生消息的一方称为 Producer 即 生产者, 它是 Kafka 的核心组件之一, 也是消息的来源所在。它的主要功能是将客户端的请求打包封装发送到 kafka 集群的某个 Topic 的某个分区上。那么这些生产者产生的消息是怎么传到 Kafka 服务端的呢&a…

Linux系统三剑客之grep和正则表达式的介绍(一)

1.正则表达式 目录 1.正则表达式 1.什么是正则表达式 &#xff1f; 2.正则表达式的使用场景 3.正则表达式字符表示 4.它们之间的区别 2.grep命令 作用&#xff1a; 语法&#xff1a; 说明&#xff1a; 选项&#xff1a;options 重点 实例 3.后面的下次再更新。 …