规范化sklearn

问题描述 投票:0回答:1

假设我有一个pandas数据框,我想在这个函数的帮助下仅规范化一些属性,而不是整个数据框:

preprocessing.normalize

我想将这些规范化的列放到我的数据框中。但我不能,因为它有不同的格式(numpy数组)。

我已经看过如何以其他方式进行规范化,例如我喜欢这样:

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

但我真的需要使用sklearn来做到这一点。谢谢,堆叠!

python python-3.x pandas scikit-learn normalization
1个回答
3
投票

你正在做的是Min-max缩放。 scazit中的"normalize"与你想做的事情有不同的含义。

试试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:

from sklearn.preprocessing import MinMaxScaler
minmax = MinMaxScaler()
df[['A', 'C']] = minmax.fit_transform(df[['A', 'C']])
© www.soinside.com 2019 - 2024. All rights reserved.