工作中经常遇到每个指标数据取值范围过大,为了消除数量级带来的另想,需要进行标准化处理.
#-*- coding: utf-8 -*-#标准差标准化import pandas as pddatafile = '../data/zscoredata.xls' #需要进行标准化的数据文件;zscoredfile = '../tmp/zscoreddata.xls' #标准差化后的数据存储路径文件;#标准化处理data = pd.read_excel(datafile)# print(data.mean(axis=0));exit()data = (data - data.mean(axis = 0))/(data.std(axis = 0)) #简洁的语句实现了标准化变换,类似地可以实现任何想要的变换。# data.mean(axis=0) 输出矩阵为一行,求每列的平均值,同理data.mean(axis=1) 输出矩阵为一列,求每行的平均值# data.std(axis=0) 输出矩阵为一列,求每列的标准差,同理data.std(axis=1) 输出矩阵为一列,求每行的标准差#标准差也成为标准偏差,表示数据的离散程度,和标准差大小成反比data.columns=['Z'+i for i in data.columns] #表头重命名。data.to_excel(zscoredfile, index = False) #数据写入