使用Python進行數(shù)據(jù)標(biāo)準(zhǔn)化

<section class="output_wrapper" ><h2 ><span >讀取數(shù)據(jù)</span></h2><p >首先,加載pandas和numpy庫,讀取數(shù)據(jù)。</p><pre ><code class="python language-python hljs" ><span class="hljs-keyword" >import</span>?pandas?<span class="hljs-keyword" >as</span>?pd<br /><span class="hljs-keyword" >import</span>?numpy?<span class="hljs-keyword" >as</span>?np<br />detail?=?pd.read_csv(<span class="hljs-string" >'detail.csv'</span>,index_col=<span class="hljs-number" >0</span>,encoding?=?<span class="hljs-string" >'gbk'</span>)<span class="hljs-comment" >#中文編碼</span><br /></code></pre><h2 ><span >自定義離差標(biāo)準(zhǔn)化函數(shù)</span></h2><pre ><code class="hljs lua" >def?minmaxscale(data):<br />????data=(data-data.<span class="hljs-built_in" >min</span>())/(data.<span class="hljs-built_in" >max</span>()-data.<span class="hljs-built_in" >min</span>())<br />????<span class="hljs-keyword" >return</span>?data<br />##對菜品訂單表售價和銷量做離差標(biāo)準(zhǔn)化<br />data1=minmaxscale(detail[<span class="hljs-string" >'counts'</span>])<br />data2=minmaxscale(detail?[<span class="hljs-string" >'amounts'</span>])<br />data3=pd.<span class="hljs-built_in" >concat</span>([data1,data2],axis=<span class="hljs-number" >1</span>)<br /><span class="hljs-built_in" >print</span>(<span class="hljs-string" >'離差標(biāo)準(zhǔn)化之前銷量和售價數(shù)據(jù)為:\n'</span>,<br />????detail<span class="hljs-string" >[['counts','amounts']]</span>.head())<br /><span class="hljs-built_in" >print</span>(<span class="hljs-string" >'離差標(biāo)準(zhǔn)化之后銷量和售價數(shù)據(jù)為:\n'</span>,data3.head())<br /></code></pre><p >結(jié)果為:</p><pre ><code class="hljs css" >離差標(biāo)準(zhǔn)化之前銷量和售價數(shù)據(jù)為:<br />????????????<span class="hljs-selector-tag" >counts</span>??<span class="hljs-selector-tag" >amounts</span><br /><span class="hljs-selector-tag" >detail_id</span>?????????????????<br />2956????????????1???????49<br />2958????????????1???????48<br />2961????????????1???????30<br />2966????????????1???????25<br />2968????????????1???????13<br />離差標(biāo)準(zhǔn)化之后銷量和售價數(shù)據(jù)為:<br />????????????<span class="hljs-selector-tag" >counts</span>???<span class="hljs-selector-tag" >amounts</span><br /><span class="hljs-selector-tag" >detail_id</span>??????????????????<br />2956??????????0<span class="hljs-selector-class" >.0</span>??0<span class="hljs-selector-class" >.271186</span><br />2958??????????0<span class="hljs-selector-class" >.0</span>??0<span class="hljs-selector-class" >.265537</span><br />2961??????????0<span class="hljs-selector-class" >.0</span>??0<span class="hljs-selector-class" >.163842</span><br />2966??????????0<span class="hljs-selector-class" >.0</span>??0<span class="hljs-selector-class" >.135593</span><br />2968??????????0<span class="hljs-selector-class" >.0</span>??0<span class="hljs-selector-class" >.067797</span><br /></code></pre><h2 ><span >也可以通過sklearn庫中的minmax_scale函數(shù)實現(xiàn)</span></h2><pre ><code class="hljs coffeescript" ><span class="hljs-keyword" >from</span>?sklearn?<span class="hljs-keyword" >import</span>?preprocessing<br />preprocessing.minmax_scale(detail[<span class="hljs-string" >'amounts'</span>])<br /></code></pre><p >結(jié)果為:</p><pre ><code class="hljs delphi" ><span class="hljs-keyword" >Out</span>[<span class="hljs-number" >141</span>]:?<br /><span class="hljs-keyword" >array</span>([<span class="hljs-number" >0.27118644</span>,?<span class="hljs-number" >0.26553672</span>,?<span class="hljs-number" >0.16384181</span>,?...,?<span class="hljs-number" >0.21468927</span>,?<span class="hljs-number" >0.03389831</span>,<br />???????<span class="hljs-number" >0.14689266</span>])<br /></code></pre><h2 ><span >自定義標(biāo)準(zhǔn)差標(biāo)準(zhǔn)化函數(shù)</span></h2><pre ><code class="hljs kotlin" >def?StandardScaler(<span class="hljs-keyword" >data</span>):<br />????<span class="hljs-keyword" >data</span>=(<span class="hljs-keyword" >data</span>-<span class="hljs-keyword" >data</span>.mean())/<span class="hljs-keyword" >data</span>.std()<br />????<span class="hljs-keyword" >return</span>?<span class="hljs-keyword" >data</span><br />##對菜品訂單表售價和銷量做標(biāo)準(zhǔn)化<br />data4=StandardScaler(detail[<span class="hljs-string" >'counts'</span>])<br />data5=StandardScaler(detail[<span class="hljs-string" >'amounts'</span>])<br />data6=pd.concat([data4,data5],axis=<span class="hljs-number" >1</span>)<br />print(<span class="hljs-string" >'標(biāo)準(zhǔn)差標(biāo)準(zhǔn)化之前銷量和售價數(shù)據(jù)為:\n'</span>,<br />????detail[[<span class="hljs-string" >'counts'</span>,<span class="hljs-string" >'amounts'</span>]].head())<br />print(<span class="hljs-string" >'標(biāo)準(zhǔn)差標(biāo)準(zhǔn)化之后銷量和售價數(shù)據(jù)為:\n'</span>,data6.head())<br /></code></pre><p >結(jié)果為:</p><pre ><code class="hljs css" >標(biāo)準(zhǔn)差標(biāo)準(zhǔn)化之前銷量和售價數(shù)據(jù)為:<br />????????????<span class="hljs-selector-tag" >counts</span>??<span class="hljs-selector-tag" >amounts</span><br /><span class="hljs-selector-tag" >detail_id</span>?????????????????<br />2956????????????1???????49<br />2958????????????1???????48<br />2961????????????1???????30<br />2966????????????1???????25<br />2968????????????1???????13<br />標(biāo)準(zhǔn)差標(biāo)準(zhǔn)化之后銷量和售價數(shù)據(jù)為:<br />??????????????<span class="hljs-selector-tag" >counts</span>???<span class="hljs-selector-tag" >amounts</span><br /><span class="hljs-selector-tag" >detail_id</span>????????????????????<br />2956??????<span class="hljs-selector-tag" >-0</span><span class="hljs-selector-class" >.177571</span>??0<span class="hljs-selector-class" >.116671</span><br />2958??????<span class="hljs-selector-tag" >-0</span><span class="hljs-selector-class" >.177571</span>??0<span class="hljs-selector-class" >.088751</span><br />2961??????<span class="hljs-selector-tag" >-0</span><span class="hljs-selector-class" >.177571</span>?<span class="hljs-selector-tag" >-0</span><span class="hljs-selector-class" >.413826</span><br />2966??????<span class="hljs-selector-tag" >-0</span><span class="hljs-selector-class" >.177571</span>?<span class="hljs-selector-tag" >-0</span><span class="hljs-selector-class" >.553431</span><br />2968??????<span class="hljs-selector-tag" >-0</span><span class="hljs-selector-class" >.177571</span>?<span class="hljs-selector-tag" >-0</span><span class="hljs-selector-class" >.888482</span><br /></code></pre><h2 ><span >也可以通過sklearn庫中的scale函數(shù)實現(xiàn)</span></h2><pre ><code class="hljs coffeescript" ><span class="hljs-keyword" >from</span>?sklearn?<span class="hljs-keyword" >import</span>?preprocessing<br />preprocessing.scale(detail[<span class="hljs-string" >'amounts'</span>])<br /></code></pre><p >結(jié)果為:</p><pre ><code class="hljs delphi" ><span class="hljs-keyword" >Out</span>[<span class="hljs-number" >143</span>]:?<br /><span class="hljs-keyword" >array</span>([?<span class="hljs-number" >0.11667727</span>,??<span class="hljs-number" >0.08875496</span>,?-<span class="hljs-number" >0.41384669</span>,?...,?-<span class="hljs-number" >0.16254587</span>,<br />???????-<span class="hljs-number" >1.05605991</span>,?-<span class="hljs-number" >0.49761363</span>])<br /></code></pre></section><p><br /></p>

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容