工作中經常遇到每個指標數據取值范圍過大,為了消除數量級帶來的另想,需要進行標准化處理.
#-*- coding: utf-8 -*- #標准差標准化 import pandas as pd datafile = '../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) #數據寫入
