python数据标准_使用Python进行数据标准化

读取数据

首先,加载pandas和numpy库,读取数据。

import pandas as pd
import numpy as np
detail = pd.read_csv('detail.csv',index_col=0,encoding = 'gbk')#中文编码

自定义离差标准化函数

def minmaxscale(data):
    data=(data-data.min())/(data.max()-data.min())
    return data
##对菜品订单表售价和销量做离差标准化
data1=minmaxscale(detail['counts'])
data2=minmaxscale(detail ['amounts'])
data3=pd.concat([data1,data2],axis=1)
print('离差标准化之前销量和售价数据为:\n',
    detail[['counts','amounts']].head())
print('离差标准化之后销量和售价数据为:\n',data3.head())

结果为:

离差标准化之前销量和售价数据为:
            counts  amounts
detail_id                 
2956            1       49
2958            1       48
2961            1       30
2966            1       25
2968            1       13
离差标准化之后销量和售价数据为:
            counts   amounts
detail_id                  
2956          0.0  0.271186
2958          0.0  0.265537
2961          0.0  0.163842
2966          0.0  0.135593
2968          0.0  0.067797

也可以通过sklearn库中的minmax_scale函数实现

from sklearn import preprocessing
preprocessing.minmax_scale(detail['amounts'])

结果为:

Out[141]: 
array([0.271186440.265536720.16384181, ..., 0.214689270.03389831,
       0.14689266])

自定义标准差标准化函数

def StandardScaler(data):
    data=(data-data.mean())/data.std()
    return data
##对菜品订单表售价和销量做标准化
data4=StandardScaler(detail['counts'])
data5=StandardScaler(detail['amounts'])
data6=pd.concat([data4,data5],axis=1)
print('标准差标准化之前销量和售价数据为:\n',
    detail[['counts','amounts']].head())
print('标准差标准化之后销量和售价数据为:\n',data6.head())

结果为:

标准差标准化之前销量和售价数据为:
            counts  amounts
detail_id                 
2956            1       49
2958            1       48
2961            1       30
2966            1       25
2968            1       13
标准差标准化之后销量和售价数据为:
              counts   amounts
detail_id                    
2956      -0.177571  0.116671
2958      -0.177571  0.088751
2961      -0.177571 -0.413826
2966      -0.177571 -0.553431
2968      -0.177571 -0.888482

也可以通过sklearn库中的scale函数实现

from sklearn import preprocessing
preprocessing.scale(detail['amounts'])

结果为:

Out[143]: 
array([ 0.11667727,  0.08875496, -0.41384669, ..., -0.16254587,
       -1.05605991, -0.49761363])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值