爱数科是一个拖拽式数据科学科研和教学一体化平台,集成数十行业数千数据集、科研案例模板。帮助科研人员快速使用大数据和人工智能技术开展研究。支持高校开展大数据通识课程教学。帮助非专业人员进行数据分析和生成数据分析报告。





本案例使用爱数科(idatascience)的字符串匹配、字符串分割、字段重命名等组件,对从当当网抓取的机器学习相关的图书信息进行数据清洗,处理为符合我们要求的数据。本案例适合作为大一大数据通识导论课程数据清洗模块的教学案例。

大数据通识课案例 |  当当网图书数据清洗_原始数据

1. 读数据表

首先,我们读取原始数据。数据集各字段的介绍可参考:

​http://idatascience.cn/dataset-detail?table_id=2​

大数据通识课案例 |  当当网图书数据清洗_原始数据_02



可以看出原始数据中有许多问题,例如当前价格带有人民币符号'¥',评论数含有文本等等。

2. 提取价格数值

我们去掉当前价格这一列中的 '¥' 符号,使用正则表达式​​\d{1,4}\.{0,1}\d{0,2}​​​将当前价格中的数值提取出来,保存为新的一列​​当前价格_match​​。

大数据通识课案例 |  当当网图书数据清洗_原始数据_03

3. 提取评论数

对于评论数这一列使用正则表达式​​\d{1,4}\.{0,1}\d{0,2}​​​提取数值,保存为​​评论数_match​​。

大数据通识课案例 |  当当网图书数据清洗_数据_04

4. 提取星级数值

对于星级这一列使用正则表达式​​\d{1,4}\.{0,1}\d{0,2}​​​提取数值,保存为​​星级_match​​。

大数据通识课案例 |  当当网图书数据清洗_原始数据_05

5. 星级数值除以20

接着将提取出的星级数值除以20,将取值范围转换为[0,5]。

大数据通识课案例 |  当当网图书数据清洗_数据_06

可以看到,经过列数值计算后的数据更适合数据的建模计算和可视化分析了。

6. 出版信息字符串分割

接下来我们处理出版信息这一列,从原始数据中可以看到,这一列主要包含三个信息,分别是作者、出版日期、出版社。它们以“/”分隔,并且存放在一个数据单元中,我们将它们分别取出,然后单独存为三列。

大数据通识课案例 |  当当网图书数据清洗_数据_07

7. 书名去掉【】

书名信息中混合着简介信息,观察原始数据中书名一列,能找到一些规律。除去一些包含在 【】和 [] 中间的标注信息,剩余的内容中书名和其他内容基本是由空格隔开的。所以我们首先将【】和 [] 去掉,然后按照空格分隔字符串,第一个内容便是书名。

首先在​​书名​​​一列中去掉【】中的信息,并将结果保存为​​书名_replace​​:

大数据通识课案例 |  当当网图书数据清洗_数据_08

8. 书名去掉[]

接着在​​书名_replace​​​一列中去掉[]中的信息,保存为​​书名_replace_replace​​:

大数据通识课案例 |  当当网图书数据清洗_大数据_09

9. 书名字符串分割

去除方括号【】和[]后我们把​​书名_replace_replace​​列中文字根据空格进行字符串分割,并进行分列。

大数据通识课案例 |  当当网图书数据清洗_原始数据_10

10. 删除不需要的数据列

在原始数据中和上面操作生成数据中有许多冗余数据列,我们把不需要的数据列都删除掉。

大数据通识课案例 |  当当网图书数据清洗_大数据_11

11. 数据字段重命名

最后,我们将数据集各列特征名称修改为各列数据的信息种类。

大数据通识课案例 |  当当网图书数据清洗_数据_12

原始数据集中含有文字数字混杂、量纲不同等等问题。经过数据清理,原始数据集已经适用于进一步的建模计算和可视化处理了。


  • 案例在线地址:http://idatascience.cn/case-detail?experimentId=320