之前的博客已经写了python爬取豆瓣读书top250的相关信息,接下来继续看如何清洗数据。
如果有没看懂的或是不了解上一部分说的是什么内容的,请看https://blog.csdn.net/qq_45804925/article/details/112848887

现在开始具体内容的复习:

1. 豆瓣读书top250信息预处理

#数据清洗
import pandas as pd
import re
import time
# 先读取数据文件
data = pd.read_csv('E:/Class/商业智能实训/我~编写代码/DoubanMovies/book.csv')
result = pd.DataFrame(data)a = result.dropna(axis=0, how='any')
pd.set_option('display.max_rows', None)     #输出全部行,不省略b = u'数据'
number = 1b1 = '1981-8'
li1 = a['出版社']
for i in range(0, len(li1)):try:if b1 in li1[i]:# print(number,li1[i])number += 1a = a.drop(i, axis=0)except:passb2 = '中国基督'
a['出版时间'] = a['出版时间'].str[0: 5]
li2 = a['出版时间']
for i in range(0, len(li2)):try:if b2 in li2[i]:# print(number,li2[i])number += 1a = a.drop(i, axis=0)except:passb3 = 'CNY'
li3 = a['价格']
for i in range(0, len(li3)):try:if b3 in li3[i]:a['价格'] = li3.str.replace('CNY', '')except:passb41 = '清'
b42 = '明'
li4 = a['国家']
a['国家'] = li4.str.replace("国", "")
for i in range(0, len(li4)):try:if b41 in li4[i]:a['国家'] = li4.str.replace('清', '中')if b42 in li4[i]:a['国家'] = li4.str.replace('明', '中')except:passtime.sleep(3)a.to_csv('newbook.csv', index=False)

在《福尔摩斯探案全集》这部分我们选择的是删掉数据,因为其xpath定位的内容与其他书籍有很大不同,导致数据位置不对,删掉后对于总体的数据来说影响不大。其次,为了简化后续对数据的统计,我们将作者国家部分的‘清’‘明’等朝代问题统一改为中(国),并且出版时间格式各有不同,为方便管理统一截取出版年份,在统计时变更为简便。

2. 数据预处理结果展示

3. 将清洗好后的数据文件导入数据库

3.1 将csv文件导入数据库

这里使用的是navicat,具体导入操作可以自行百读哈。需要提前将数据库建好哦!

创建原始数据表
CREATE TABLE `books` (`title` varchar(255) DEFAULT NULL,`link` varchar(255) DEFAULT NULL,`country` varchar(255) DEFAULT NULL,`author` varchar(255) DEFAULT NULL,`translator` varchar(255) DEFAULT NULL,`publisher` varchar(255) DEFAULT NULL,`press_time` int(11) DEFAULT NULL,`price` decimal(10,2) DEFAULT NULL,`star` float DEFAULT NULL,`score` float DEFAULT NULL,`people` int(11) DEFAULT NULL,`comment` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

百度如何将csv文件导入数据库
导入成功后的截图显示如下:

需求分析:
首先根据网页信息确认爬取的图书内容后,主要针对国家、作者、出版社、出版时间、评论人数、价格和评分这几点进行了分析。其中包括各国家和各作者出版的图书数量、各出版社出版图书占比、每年出版图书数量、评论人数前10的热议图书名称及评论人数、书友能够接受的图书价格和书籍评分。最终以折线图、柱状图和饼状图等形式分别呈现出其数据可视化效果。

3.2创建要实现数据可视化库表

如图所示:

表名 说明
books 原始数据表
book_country_num 各国家出版的图书数量表
book_author_num 各作者出版图书数量数据表
book_publisher_num 各出版社出版图书占比数据表
book_presstime_num 每年图书出版数量数据表
book_people_title 评论人数top10数据表
book_price_num 出版图书价格数据表
book_score_num 出版图书评分数据表

3.2.1 各国家出版的图书数量数据表

创建各国家出版的图书数量数据表
CREATE TABLE `book_country_num` (`country` varchar(255) DEFAULT NULL COMMENT '国家',`num` int(11) DEFAULT NULL COMMENT '数量'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;写入book_country_num表
insert into book_country_numselectcountry, count(*) as numfrom booksgroup by country;

3.2.2 各作者出版图书数量数据表

创建各作者出版图书数量数据表
CREATE TABLE `book_author_num` (`author` varchar(255) DEFAULT NULL COMMENT '作者',`num` int(11) DEFAULT NULL COMMENT '数量'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;写入book_author_num表
insert into book_author_numselectauthor, count(*) as numfrom booksgroup by author;

3.2.3 各出版社出版图书占比数据表

创建各出版社出版图书占比数据表
CREATE TABLE `book_publisher_num` (`publisher` varchar(255) DEFAULT NULL COMMENT '出版社',`num` int(11) DEFAULT NULL COMMENT '数量'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;写入book_publisher_num表
insert into book_publisher_numselectpublisher, count(*) as numfrom booksgroup by publisher;

3.2.4 每年图书出版数量数据表

创建每年图书出版数量数据表
CREATE TABLE `book_presstime_num` (`press_time` int(11) DEFAULT NULL COMMENT '出版时间',`num` int(11) DEFAULT NULL COMMENT '数量'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;写入book_presstime_num表
insert into book_presstime_numselectpress_time, count(*) as num from booksgroup by press_time;

3.2.5 评论人数top10数据表

创建评论人数top10数据表
CREATE TABLE `book_people_title` (`people` int(11) DEFAULT NULL COMMENT '评论人数',`title` varchar(255) DEFAULT NULL COMMENT '书名'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
写入book_people_title表
insert into book_people_titleselectpeople, titlefrom booksgroup by peopleorder by people desclimit 10;

3.2.6 出版图书价格数据表

创建出版图书价格数据表
CREATE TABLE `book_price_num` (`price` float DEFAULT NULL COMMENT '价格',`num` int(11) DEFAULT NULL COMMENT '数量'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;写入book_price_num表
insert into book_price_numselectprice, count(*) as numfrom booksgroup by price;

3.2.7 出版图书评分数据表

创建出版图书评分数据表
CREATE TABLE `book_score_num` (`score` float DEFAULT NULL COMMENT '评分',`num` int(11) DEFAULT NULL COMMENT '数量'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;写入book_score_num表
insert into book_score_numselectscore, count(*) as numfrom booksgroup by score;

最后在数据库中查看一下,okk

今天就是将豆瓣读书top250的数据信息进行爬取,并进行清洗与预处理,最后将清洗好后的数据文件导入数据库,创建相应的要实现的数据可视化数据库表并插入相关数据。

python爬虫豆瓣读书top250+数据清洗+数据库+Java后端开发+Echarts数据可视化(二)相关推荐

  1. python爬虫豆瓣读书top250+数据清洗+数据库+Java后端开发+Echarts数据可视化(一)

    由于刚上完了商业智能实训的课程,根据老师的要求我们做了一个完整的项目. 1. 项目要求与内容 项目具体要求:利用python爬取数据并进行清洗和预处理,将清洗后的数据存到数据库中,后端利用Java或是 ...

  2. python爬虫豆瓣读书top250+数据清洗+数据库+Java后端开发+Echarts数据可视化(四)

    之前的博客已经写了python爬取豆瓣读书top250的相关信息和清洗数据.将数据导入数据库并创建相应的数据表,以及进行项目准备工作,接下来开始正式编写后台代码. 如果有没看懂的或是不了解上一部分说的 ...

  3. Python爬虫豆瓣电影top250

      我的另一篇博客,Python爬虫豆瓣读书评分9分以上榜单   有了上次的基础,这次简单爬了下豆瓣上电影TOP250,链接豆瓣电影TOP250.   打开链接,查看网页源代码,查找我们需要的信息的字 ...

  4. 爬虫豆瓣读书top250,保存为本地csv文件

    爬虫豆瓣读书top250,保存为本地csv文件 目的 将豆瓣读书top250排名保存到本地excel,包括书名,作者,评分,评论数,简评,网址.用到了requests,res,BeautifulSou ...

  5. Python爬虫——豆瓣读书

    准备 豆瓣读书网址是:https://book.douban.com/tag/%E5%B0%8F%E8%AF%B4?start=880&type=T 红色箭头标记的就是我们要获取的信息,我们有 ...

  6. 爬虫豆瓣读书top250,保存为本地csv文件,可用excel查看(具体步骤和容易遇到的坑)

    1.目的 将豆瓣读书top250排名保存到本地excel,包括书名,作者,评分,评论数,简评,网址.用到了requests,res,BeautifulSoup,csv库. 2.分析网址 打开豆瓣读书网 ...

  7. python爬虫-豆瓣电影Top250

    豆瓣电影Top250 一.准备环境 idea+python插件/python 一.需求分析 1. 运用代码获取豆瓣电影Top250里面电影的相关信息: 影片详情链接: 影片名称: 影片图片链接: 影片 ...

  8. Python爬虫|豆瓣图书Top250

    欢迎大家关注我的微信公众号! 名称:爬虫与地理信息 一.爬取思路分析 1.URL链接地址分析 首先打开豆瓣图书Top250主页:https://book.douban.com/top250,鼠标滑到页 ...

  9. python 豆瓣电影top250_[python爬虫]豆瓣电影Top250简单数据分析绘图

    一:简介 通过抓取豆瓣电影Top250的数据,分别进行了三个数据统计,分别是:上榜的电影上映的年份,该年份总共上榜的电影数量,数量为0的就没有统计了:各个国家地区出品的电影数量:250部电影的各个类型 ...

最新文章

  1. 常用的认证机制之session认证和token认证
  2. xml解析:Sax,Dom,pull解析
  3. Effective Java之for-each循环优先于for循环(四十六)
  4. jQuery.sap.factory
  5. leetcode259. 较小的三数之和
  6. 解决: Spring Boot报错 This application has no explicit mapping ... a fallback
  7. Windows 8 DirectX 开发学习笔记(十六)使用Terragen生成自然环境贴图
  8. Filebeat 日志收集器 logstash-forwarder 的替代品
  9. 佳能ir2002g无法扫描到计算机,佳能ir2002g扫描驱动官方版
  10. 计算机专业职业生涯规划200字,计算机职业生涯规划 200字
  11. PDCA是什么意思?
  12. 顺德苹果售后维修体验
  13. 现在移动端还用rem吗?nonono
  14. 哪些东西买了之后,会让人因生活质量和幸福感提升而感觉相见恨晚?
  15. 一本好的“错题集”如何做?看这里
  16. 计算机无法登录到网络,电脑无法连接到这个网络是什么原因
  17. 刚子:走马观花奋达创“芯”发布会
  18. 不止微信、支付宝!一文带你了解所有小程序平台
  19. Java实现图书管理系统(超详细解析)
  20. Java的isblank,strip方法找不到

热门文章

  1. AI人工智能 Python实现人机对话
  2. Thoughtworks心得体会
  3. linux clamav杀毒软件的安装
  4. 声音编辑软件----CoolEdit
  5. 项目管理与SSM框架——Maven
  6. 分数方程计算机在线使用,分数方程练习题100道.doc
  7. 三星Samsung SF-331P 驱动
  8. 程序崩溃导致火卫一土壤火星探测器失败
  9. 水域大小/岛屿最大面积-dfs
  10. html5 audio组件禁止下载