我有一个项目与项目的附属矩阵(dm);两个项目之间的值(例如,item0,item1)是指这些项目一起出现的次数。如何在pandas中缩放0到1之间的所有值?
from sklearn import preprocessing
scaler = preprocessing.MinMaxScaler()
但是,我不确定如何将缩放器应用于pandas数据框。
答案 0 :(得分: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())
执行相同操作。