2016-07-06 5 views
0

アイテム対アイテムの近接行列(dm)があります。 2つのアイテム(item0、item1など)の間の値は、これらのアイテムが一緒に表示される回数を示します。パンダのすべての値を0と1の間でスケールするにはどうすればよいですか?MinMaxScalerを使用して(パンダの)隣接行列を正規化します

from sklearn import preprocessing 
scaler = preprocessing.MinMaxScaler() 

しかし、私はパンダのデータフレームにスケーラを適用する方法がわかりません。

enter image description here

答えて

0

あなたはLOCバックデータフレームに結果の配列を割り当てることができます。

df = pd.DataFrame(np.random.randint(1, 5, (5, 5))) 

df 
Out[277]: 
    0 1 2 3 4 
0 2 3 2 3 1 
1 2 3 4 4 2 
2 2 3 4 3 2 
3 1 1 2 1 4 
4 4 2 2 3 1 

df.loc[:,:] = scaler.fit_transform(df) 

df 
Out[279]: 
      0 1 2   3   4 
0 0.333333 1.0 0.0 0.666667 0.000000 
1 0.333333 1.0 1.0 1.000000 0.333333 
2 0.333333 1.0 1.0 0.666667 0.333333 
3 0.000000 0.0 0.0 0.000000 1.000000 
4 1.000000 0.5 0.0 0.666667 0.000000 

あなたは(df - df.min())/(df.max() - df.min())と同じことを行うことができます。

+0

これも機能します:df.apply(lambda x:scaler.fit_transform(x)) – kitchenprinzessin

関連する問題