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/ 引言 传统的数据整合方式需要大量的手工 ...
随机推荐
- 转:在android中button响应的两种方式
1. 在布局文件中添加button的监听名字 Android:onClick="buttonOnClick" 例如: <Button android:id="@+i ...
- JS计算两个日期之间的天数
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- python 多进程锁Lock和共享内存
多进程锁 lock = multiprocessing.Lock() 创建一个锁 lock.acquire() 获取锁 lock.release() 释放锁 with lock: 自动获取.释放锁 类 ...
- Centos 7.2 双网卡绑定之踩坑
线上服务器,安装centos7.2 x64最小化安装,需要做链路聚合,双网卡绑定.在centos 6.x 和 centos 7上测试都OK,于是直接开搞. 说明下,以下环境是在虚拟机中实现的: 系统: ...
- F - 等式(1/x + 1/y = 1/n)
链接:https://www.nowcoder.com/acm/contest/90/F来源:牛客网 题目描述 给定n,求1/x + 1/y = 1/n (x<=y)的解数.(x.y.n均为正整 ...
- ( 转 ) 数据库BTree索引、Hash索引、Bitmap位图索引的优缺点
测试于:MySQL 5.5.25 当前测试的版本是Mysql 5.5.25只有BTree和Hash两种索引类型,默认为BTree.Oracle或其他类型数据库中会有Bitmap索引(位图索引),这里作 ...
- 【Docker】基本命令使用介绍
# docker命令行学习 ## docker run- docker run --help:老实说这条最管用了- docker run -it:交互模式,允许控制台输出 - docker run - ...
- 微信小程序开发教程(二)创建第一个微信小程序
在安装完“微信Web开发者工具”之后,通过开发者的微信扫码进入后,如图. 点击“添加项目”,填入之前获得的AppID(无AppID可忽略),输入项目名称“Hello WXapplet”,选定本地文件夹 ...
- IDEA的Maven项目找不到class
- [CTSC2017]游戏(Bayes定理,线段树)
传送门:http://uoj.ac/problem/299 题目良心给了Bayes定理,但对于我这种数学渣来说并没有什么用. 先大概讲下相关数学内容: 1.定义:$P(X)$ 表示事件$X$发生的概率 ...