1.数据集成
(1)概述:数据集成就是把不同来源的数据放在一起。但是来自多个地方的数据一定要做好实体识别与冗余属性识别,避免数据整合错误及数据重复。
(2)过程:
①观察数据源,发现其中关系,详细查看是否有同名不同意,同意不同名的情况;
②进行数据读取与整合;
③去除重复数据。
(3)实例:
【注】数据集成numpy.concatenate()
import numpy
a=numpy.array([[1,9,3],[5,9,2]])
b=numpy.array([[7,4,1],[4,2,7]])
c=numpy.concatenate((a,b))
>>> c
array([[1, 9, 3],
[5, 9, 2],
[7, 4, 1],
[4, 2, 7]])
2.数据变换
数据变换的目的是将数据转换为更方便分析的数据。
(1)简单变换:通常使用函数变换的方式进行,常见的函数变换包括:开方、平方、对数等。
(2)数据规范化
导入数据:
>>>data=pda.read_sql(sql,conn)
①离差标准化(最小-最大标准化)——消除量纲(单位)影响以及变异大小因素的影响。
x1=(x-min)/(max-min)
离差标准化结果>>>licha=(data-data.min())/(data.max()-data.min())
②标准差标准化(0-均值标准化)——消除单位影响以及变量自身变异影响。
x1=(x-平均数)/标准差
标准差标准化结果>>>bzc=(data-data.mean())/data.std()
【注】数据中心化与标准化的区别:数据中心化是指变量减去它的均值;数据标准化是指数值减去均值,再除以标准差。通过中心化和标准化处理,得到均值为0、标准差为1的服从标准正态分布的数据。
体现在二维坐标中的结果如下:
数据中心化和标准化从上图可以看出,数据中心化的几何意义是将原始数据进行平移处理,数据标准化的几何意义是将原始数据进行标准化处理(类似单位化)。
(详细内容参考博文https://blog.csdn.net/lilong117194/article/details/78561013)
③小数定标规范化——消除单位影响
x1=x/10**(k)
k=log10(x的绝对值的最大值)
小数定标规范化结果>>>xsdb=data/10**(npy.ceil(npy.log10(data.abs().max())))
(3)离散化
①等宽离散化(按区间划分)
pdata=data["price"].copy()
npdata=pdata.T.values
dk=pda.cut(npdata,3,labels=["便宜","适中","贵"])
>>> dk
[便宜, 适中, 贵, 便宜, 便宜, ..., 便宜, 便宜, 便宜, 便宜, 便宜]
Length: 42
Categories (3, object): [便宜 < 适中 < 贵]
【注】等宽离散化:pda.cut(data,等分份数,labels=["差","良","优"])
非等宽离散化:pda.cut(data,[a,a+b,a+b+c],labels=["差","良","优"])
fdk=pda.cut(npdata,[0,100,1000,npdata.max()],labels=["便宜","适中","贵"])
>>> fdk
[NaN,贵, 贵, 适中, 适中, ..., NaN, 适中, 便宜, NaN, NaN]
Length: 42
Categories (3, object): [便宜 < 适中 < 贵]
②等频率离散化(按频数划分)
③一维聚类离散化(先聚类后划分)
(4)属性构造
实例:构造销售量为100时的总价属性
属性构造结果csvdata=pda.read_csv("G:/DA/product.csv",engine="python")
sx=csvdata["price"]*100
csvdata["num"]=100
csvdata["sum"]=sx
file="G:/DA/product.csv"
csvdata.to_csv(file,index=False)
网友评论