【无标题】

数据集成、变换与规约

  • 数据集成
    • 数据集成概述
      • 1.实体识别
      • 2.冗余属性识别
      • 3.元组重复
    • 合并数据
      • 主键合并数据

数据集成

数据集成概述

数据分析或数据挖掘中需要的数据往往有不同的来源,这些数据的格式、特点千差万别且质量较低,给数据分析或数据挖据增加了难度。为提高数据分析或数据挖掘的效率,多个数据源的数据需要合并到一个 数据源,形成统一的数据来源, 这一过程就是数据集成。
在数据集成期间可能会面临很多问题,包括实体识别、冗余属性识别、元组重复、数据值冲突等,其中实体识别、冗余属性识别、元组重复较难理解,下 面分别对这些问题进行着重介绍。

1.实体识别

实体识别指从不同数据源中识别出现实世界的实体,主要用于统一不同数 据源的矛盾之处。常见的矛盾包括同名异义、异名同义、单位不统一等, 其中同名异义指同一属性对应着不同的实体,如数据源A和数据源B的属性id分别描述的是商品编号和订单编号;异名同义指不同属性对应着同一实体, 如数据源A的属性sale_ dt 与数据源B的属性sale _date 描述的都是销售日期;单位不统一指同一个实体 分别用不同标准的容积单位表示,如数据源A和数据源B中的属性fuel consumption 分别描述的是以升和加仑为容积单位的燃料消耗量。

2.冗余属性识别

冗余属性识别是数据集成期间极易产生的问题,这-问题主要是由同一属性 多次出现、同一属性命名方式不一致造成的。对冗余属性而言,需要先进行检测,一但检测到冗余属性就将该属性删除。

3.元组重复

元组重复是数据集成期间另-一个容易产生的数据冗余问题,这一-问题主要是由录入错误或未及时更新造成的。例如,订单中同一订货人有多个不同的地址信息。
需要说明的是,由于数据源存在以上数据问题,数据集成之后可能需要经过数据清理,以便清除可能存在的实体识别、冗余属性识别和元组重复问题。
pandas中有关数据集成的操作是合并数据,pandas为该操作提供了丰富的函数或方法,后续小节会展开介绍。

合并数据

pandas在处理多组数据时经常会涉及合并操作。pandas中内置了许多能轻松地合并数据的函数或方法,通过这些雨数或方法可以对Series类对象或DataFrame类对象进行符合各种逻辑关系的合并操作,合并后生成一个整合的Series类对象或DataFrame类对象。接下来,通过一张表来列举pandas中用于合并数据的函数或方法,这些函数或方法及其说明如表6-1所示。

			表6-1 pandas 中用于合并数据的函数或方法及其说明   
函数/方法 说明
merge() 根据一个或多个键连接两组数据
merge_ ordered() 通过可选的填充值/插值连接两组有序的数据(如时间序列)
merge_ asof() 根据匹配最近的键连接两个DataFrame类对象(必须按键进行排序)
join() 根据行索引连接多组数据
concat() 沿着某一轴方向堆叠多组数据
append() 向数据末尾追加若干行数据
combine_ first() 使用一个对象填充另一个对象中相同位置的缺失值

主键合并数据

import pandas as pd
df_left=pd.DataFrame({'key':['K0','K1','K2'],
                    'A':['A0','A1','A2'],
                    'B':['B0','B1','B2']})
df_right=pd.DataFrame({'key':['K0','K1','K2','K3'],
                    'C':['C0','C1','C2','C3'],
                    'D':['D0','D1','D2','D3']})
#以key为主键,采用内连接的方式合并数据
result=pd.merge(df_left,df_right,on='key')
print(result)

【无标题】_第1张图片

你可能感兴趣的:(1024程序员节)