Python数据整合与数据准备-BigGorilla应用
一、前言
要应用BigGorilla框架对应数据进行数据的处理与匹配,那么首先要下载Anaconda安装,下载地址:https://www.continuum.io/downloads
Anaconda是用于辅助程序包和环境管理的框架。您可以访问以下链接
通过安装最新版的anaconda。可以根据更常使用的python版本下载“Python 3.5”或“Python 2.7”版本。请注意,无论您选择哪个版本,您都仍然可以运行python 2.7和python 3.5。
具体参见:http://www.cnblogs.com/shaosks/p/7121414.html
二、BigGorilla组件介绍
1、数据获取和数据抽取

假设我们已经从相关的数据库管理系统中获取一个表格X(id、name、loc),并且已经从一组新闻文章中抽取一个表格Y(id、cname、address、rev)。表格X包含有关公司名称和地址的信息,而表格Y包括每家公司的地址及其季度收入(单位:十亿美元)。
2、数据清理

我们检测到GE的收入351(表格Y的最后一行)是一个异常值。在仔细检查之后,我们意识到由于抽取错误,这个数值应该是35.1,而不是351。因此,我们将这个数值手动更改为35.1。
*请注意,一般有很多其他类型的清理操作。
3、模式匹配

接下来,我们会匹配表格X和Y的模式。我们获取匹配name⬌cname 和loc⬌address。直观地说,这意味着表格X的属性name与表格Y的cname相同,并且表格X的属性loc与表格Y的address相同。
4、模式合并

基于表格X和Y之间的匹配name⬌cname和loc⬌address,数据科学家可选择将两个模式X(id、name、loc)和Y(id、cname、address、rev)合并为一个模式Z(name、loc、rev)。请注意,合并过程中将忽略id属性,这是数据科学家有意而为的决策
5、数据匹配

接下来,我们会匹配表格X和Y的元组。这个匹配过程完成以下关联:x1 ≃ y2和x2 ≃ y1。直观地说,第一个匹配x1 ≃ y2表示元组x1和元组y2指的是相同的实际实体(此时,它们是相同的公司Apple Inc.)。
类似地,元组x2和y1指的是相同的公司IBM Corp。这些匹配存储在表格M中
6、数据合并
现在我们决定合并指示相同实体的元组。例如,若要根据匹配name⬌cname和loc⬌address将x2 =(IBM,NY)和y1=(IBM Corp.、CA、25)合并到符合模式Z(name、loc、rev)的一个元组中,
我们必须决定如何处理冲突值name属性的“IBM”与“IBM Corp.”以及如何处理loc属性的冲突值“NY”与“CA”。
对于name,我们可以选择编写一个启发式规则以选择较长的字符串(即这种情况下的“IBM Corp.”),因为较长的字符串更正式,能够提供更多信息。对于loc,我们可以选择编写一个规则,其将始终从第一个表格(即此时的“NY”)中选择,
因为表格X是高质量组织的关系数据库。当然,还有其他方式可以合并数据。数据科学家通常根据他们在域和源方面的知识,编写启发式规则。
7、模式映射

用于将表格X和Y中的数据转换到表格Z中的程序叫做模式映射。在此,根据对于X和Y中的元组应该如何合并到Z中的理解,开发模式映射。该程序可以是一个SQL查询,将根据表格X和Y中的元组填充表格Z。它使用表格M确定匹配,
并使用功能merge_name(.)应用选择之前所述较长字符串的启发式规则。
注意:
上述示例经过简化,以说明数据整合的关键步骤。实际上,可能会以不同的顺序执行这些步骤,甚至可能重复其中某些步骤。例如,一旦获取表格Z,数据可能再次进行清理,并与某些其他数据集匹配和合并。
此外,数据科学家可以选择通过在SQL查询中执行外联结来保留最后一个元组,而不是抛弃有关表格Y中最后一个元组的信息。
通常而言,很多步骤并没有示例所示的那么琐碎,例如模式匹配/合并和数据匹配/合并。因此,模式映射以及实现所需模式映射的过程并没有上述那么琐碎。为使数据科学家轻松整理数据,使用半自动化工具在每个步骤中为数据科学家提供帮助是非常重要的。
上面的示例涵盖了数据科学渠道的“数据整理”方面。在不同源的数据整合到一个数据库中之后,数据科学家可以通过分类、集群、异常检测、关联探索和OLAP等技术,对数据进行分析。
Python数据整合与数据准备-BigGorilla应用的更多相关文章
- Python数据整合与数据准备-BigGorilla介绍
参考文档:http://www.biggorilla.org/zh-hans/walkt/ 一.前言 “根据访谈记录和专家估计,数据科学家将50%至80%的时间花在搜集和准备难以梳理的数字数据的琐碎工 ...
- Python数据整合与数据准备-BigGorilla实例应用
参考文档:http://www.biggorilla.org/walkt/ 一.BigGorilla应用主要步骤 如下图: 二.实例应用 1.数据获取 urllib是非常受欢迎的用于在网络上读取数据的 ...
- PYTHON爬虫实战_垃圾佬闲鱼爬虫转转爬虫数据整合自用二手急速响应捡垃圾平台_3(附源码持续更新)
说明 文章首发于HURUWO的博客小站,本平台做同步备份发布. 如有浏览或访问异常图片加载失败或者相关疑问可前往原博客下评论浏览. 原文链接 PYTHON爬虫实战_垃圾佬闲鱼爬虫转转爬虫数据整合自用二 ...
- Python 进程之间共享数据
最近遇到多进程共享数据的问题,到网上查了有几篇博客写的蛮好的,记录下来方便以后查看. 一.Python multiprocessing 跨进程对象共享 在mp库当中,跨进程对象共享有三种方式,第一种 ...
- Kettle学习系列之数据仓库、数据整合、ETL、ELT和EII之间的区别?
不多说,直接上干货! 在数据仓库领域里,的一个重要概念就是数据整合(data intergration).数据整合它就是把不同数据库中的数据整合到一起,对外提供统一的数据视图. 数据整合最典型的案例就 ...
- Python数学建模-02.数据导入
数据导入是所有数模编程的第一步,比你想象的更重要. 先要学会一种未必最佳,但是通用.安全.简单.好学的方法. 『Python 数学建模 @ Youcans』带你从数模小白成为国赛达人. 1. 数据导入 ...
- JavaScript 解析 Django Python 生成的 datetime 数据 时区问题解决
JavaScript 解析 Django/Python 生成的 datetime 数据 当Web后台使用Django时,后台生成的时间数据类型就是Python类型的. 项目需要将几个时间存储到数据库中 ...
- Python下载Yahoo!Finance数据
Python下载Yahoo!Finance数据的三种工具: (1)yahoo-finance package. (2)ystockquote. (3)pandas.
- 用IBM WebSphere DataStage进行数据整合: 第 1 部分
转自:http://www.ibm.com/developerworks/cn/data/library/techarticles/dm-0602zhoudp/ 引言 传统的数据整合方式需要大量的手工 ...
随机推荐
- [Leetcode Week3]Clone Graph
Clone Graph题解 原创文章,拒绝转载 题目来源:https://leetcode.com/problems/clone-graph/description/ Description Clon ...
- phpstorm调试环境XDebug搭建
1.安装XDebug,通过phpinfo()可以看到xdebug是否已安装!!!如果未安装,可以先看我的另一篇关于XDebug安装的文章:http://www.cnblogs.com/cxscode/ ...
- Linux管道符、重定向与环境变量
——<Linux就该这么学>笔记 输入输出重定向输入重定向 指把文件导入到命令中输出重定向 指把原本要输出到屏幕的数据信息写入到指定文件中 输出重定向 分为标准输出重定向和错误输出重定向 ...
- 慎用Java递归调用
总结:慎用Java递归调用,测试时可以尝试该方法,否则尽量不要使用递归!递归过多调用时,最好改为for或者whlie来代替. 在java语言中,使用递归调用时,如果过多的调用容易造成java.lang ...
- [BZOJ2648] SJY摆棋子 kd-tree
2648: SJY摆棋子 Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 5421 Solved: 1910[Submit][Status][Disc ...
- [BZOJ4556][Tjoi2016&Heoi2016]字符串 主席树+二分+倍增+后缀自动机
4556: [Tjoi2016&Heoi2016]字符串 Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 1215 Solved: 484[S ...
- 【cocos2d-js官方文档】四、基础数据类型
基础数据类型统一通过方法来创建.不再支持new方式 1.坐标cc.Point 一共3种创建方式 结构:{x:0,y:0} //1 快捷创建,返回相当于cc.p(0,0) var point1 = cc ...
- codeforces Round 442 B Nikita and string【前缀和+暴力枚举分界点/线性DP】
B. Nikita and string time limit per test 2 seconds memory limit per test 256 megabytes input standar ...
- 使用IIFE(立即执行函数)让变量私有化
今天去看了一个GITHUB上的开源项目,在客户端JS的脚本编写的时候,代码中多次使用了IIFE. 一开始我是懵逼的,不知道这种函数的意义何在,小菜鸟嘛. 后面我去研究了一番.发现了它的主要作用就是:让 ...
- [CTSC2017]密钥
传送门:http://uoj.ac/problem/297 “无论哪场比赛,都要相信题目是水的” 这不仅是HNOI2018D2T3的教训,也是这题的教训,思维定势真的很可怕. 普及组水题,真是愧对CT ...