《Clojure数据分析秘笈》——2.5节标准化数字格式

2.5 标准化数字格式
如果需要将数字以字符串的形式读入,不得不考虑数字的格式。但很可能想让计算机将之按数字处理而不是按字符串,而如果字符串中包含逗号或句点作为千分位分隔符,那么又无法按数字进行处理。
在本方法中,编写一个小函数,这个函数读入字符串形式的数字并将数字的值返回。这个函数将数字内部多余的标点都去掉,只留下最后一个分隔符:标识小数点的位置的符号。

时间: 2024-09-27 23:36:49

《Clojure数据分析秘笈》——2.5节标准化数字格式的相关文章

《Clojure数据分析秘笈》——导读

目 录 第1章 导入分析数据1.1 引言1.2 新建项目 1.3 将CSV数据读入Incanter数据集1.4 将JSON数据读入Incanter数据集 1.5 使用Incanter读入Excel数据1.7 将XML数据读入Incanter数据集1.8 从网页表中抓取数据1.9 从网页中抓取文本数据1.10 读取RDF数据 1.11 使用SPARQL读取RDF数据1.12 整合不同格式的数据第2章 清洗和校验数据 2.1 引言2.2 使用正则表达式清洗数据2.3 使用同义词映射保持一致性2.4

《Clojure数据分析秘笈》——2.7节标准化日期和时间

2.7 标准化日期和时间在标准化和清洗数据过程中时间的处理是一个难题.人们以各种各样让人困惑的格式输入日期和时间,其中一些还有歧义.但需要尽力将它们翻译并转换为标准格式.本方法将定义一个试图解析一个日期并将之转换为标准的字符串格式.接下来将使用Clojure的clj-time库,它是对Joda Java库(http://joda-time.sourceforge.net/)的一个包装实现. 2.7.1 准备工作首先需要通过以下小段代码在Leiningen project.clj文件中声明使用的依

《Clojure数据分析秘笈》——2.2节使用正则表达式清洗数据

2.2 使用正则表达式清洗数据大概最基本.最普遍的数据清洗方式就是正则表达式了.尽管有时被滥用,但是很多时候正则表达式是完成一项工作最适合的工具.而且,Clojure内置编译正则表达式的语法,因此在Clojure中使用正则表达式也很方便.本例将编写一个标准化美国电话号码的函数. 2.2.1 准备工作本方法需要在脚本或REPL中使用clojure.string库.表达式如下: 2.2.3 实现原理本方法中最复杂的部分是正则表达式,接下来对其详细讲解.(?x):这是本身并不匹配任何内容的标识符.它允

《Clojure数据分析秘笈》——3.1节引言

第3章 使用并发编程管理复杂度3.1 引言 设计和创建一个计算机系统是一个均衡行为:不断地添加特性和功能并保持代码简单和系统性能合理.数据分析系统也是如此.事实上,数据分析系统问题更糟糕.通常而言,数据只是部分一致,在开始分析之前需要采取多种策略来抽取有用数据. 这会导致问题失控. Clojure有一系列可以帮助管理系统复杂性的工具.这些最强大的工具之一是并发编程.这使得可以使用另外一种方式设计程序.与之前一段代码做很多事情并且有非常直接.紧密的依赖关系不同,可以通过将许多完成不同功能的独立模块

《Clojure数据分析秘笈》——1.3节将CSV数据读入Incanter数据集

1.3 将CSV数据读入Incanter数据集 以逗号分隔值(CSV)是最简单的数据格式之一,并且这种数据格式应用非常普遍.Excel可以直接读写CSV文件,而且多数数据库也可以.由于CSV文件就是无格式的文本,因此使用任何编程语言都很容易生成或者访问它.1.3.1 准备工作 首先,确保加载了正确的库.Leiningen(https://github.com/technomancy/leiningen)的项目文件project.clj file应该包含以下依赖(也可以使用更新的版本): 这个文件

《Clojure数据分析秘笈》——1.7节将XML数据读入Incanter数据集

1.7 将XML数据读入Incanter数据集 一类非常常用的数据格式是XML,人们对其褒贬不一.但在某种情况下,几乎所有人都不得不处理它.Clojure可以使用Java的XML库,但它也有自己的包,这个包提供了一种在Clojure中使用XML的更自然的方式. 1.7.1 准备工作 首先,在Leiningen project.clj文件中引入以下依赖: 1.7.3 实现原理 本方法按以下顺序处理XML: 1. 解析XML数据文件. 2. 利用解析树抽取数据节点. 3. 将节点转换成代表数据的映射

《Clojure数据分析秘笈》——1.1节引言

第1章导入分析数据1.1 引言如果没有大量数据是无法进行数据分析的,因此任何项目的第一步都是评估有什么样的数据和需要什么样的数据.一旦知道需要什么样的数据,就要想办法得到它.本章和本书中的许多方法使用Incanter(http://incanter.org/)导入数据并规定使用Incanter数据集.Incanter是Clojure中完成统计分析和图形化显示的库,其作用类似于R.Incanter可能并不适用于所有任务(后面将使用Weka库进行聚类和机器学习),但它仍是在Clojure中进行数据分

《Clojure数据分析秘笈》——2.1节引言

第2章清洗和校验数据2.1 引言你在获取数据上所耗费的时间将远少于整理数据所耗费的.原始数据通常不一致.重复或者有许多缺失.在使用前必须对数据进行修正.这通常是一个重复性很高的工作:如果数据集非常大,在本阶段可以创建一个用以处理的样本.通常而言,首先检验数据文件.一旦发现问题,就编写解决问题的程序,并在数据集上运行.每次改变后,会得到zip格式的数据或者使用Git(http://git-scm.com/)或其他版本控制系统的格式(如果数据文件足够小).使用版本控制系统比较好,因为可以与记录数据本

《Clojure数据分析秘笈》——2.3节使用同义词映射保持一致性

2.3 使用同义词映射保持一致性不一致性是数据中的一个常见问题.有时一个字符是大写的,有时不是,有时是缩写,有时不是,有时还有拼写错误.在一个开放的域中,如随意拼写的单词,问题就较为复杂.然而,当数据代表一个有限的词库(如美国的州名)时,使用一些小技巧就可以解决.一个从普通形式或者错误形式到标准形式的映射是修正域内变量的一种简单办法. 2.3.1 准备工作使用如下表达式确保clojure.string/upper-case函数可用: 2.3.3 实现原理本方法中唯一的波折是需要对输入稍微进行一下