2017-11-04 10 views
0

のは、私はパンダのデータフレームを持っている、と私はいくつかの属性を正常化したいのですが、この機能の助けを借りていないデータフレーム全体としましょう:正規化はsklearn

preprocessing.normalize 

、私はインプレースこれらの正規化したいです私のデータフレームに列。しかし、私はそれが異なる形式(numpy配列)を持つことはできません。

私はすでに、たとえば、私はこのようにやった、正規他の方法を行う方法を見てきました:

s0 = X.iloc[:,13:15] 
X.iloc[:,13:15] = (s0 - s0.mean())/(s0.max() - s0.min()) 
X.head() 

しかし、私は本当にsklearnを使用してそれを実行する必要があります。 ありがとう、スタック!

+0

はあなたをしました's0 - s0.min()'または 's0 - s0.mean()'を意味しますか?前者は最小/最大スケールですが、後者は何ですか? – Psidom

答えて

0

あなたがやっていることは、最小最大スケーリングです。 scikitの"normalize"には、あなたがしたいこととは異なる意味があります。

Try MinMaxScaler

そして、ほとんどのsklearnトランスフォーマーはnumpyアレイのみを出力します。データフレームのために、あなたは、単に例として以下のようなデータフレームに列を再割り当てることができます。

import pandas as pd 
import numpy as np 

df = pd.DataFrame(data=np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]), columns=['A', 'B', 'C']) 

は今、あなただけの列AとCにスケール-MAXをminにしたいと言うことができます:

from sklearn.preprocessing import MinMaxScaler 
minmax = MinMaxScaler() 
df[['A', 'C']] = minmax.fit_transform(df[['A', 'C']])