您如何为StandardScaler编写Python函数?

时间:2019-06-11 10:16:46

标签: python

我正在尝试为项目编写一些更简洁的代码。我创建了新变量来重新缩放熊猫数据框的某些列。我想创建一个可以更高效地运行的功能。 有人对我如何实现此目标有任何想法或资源吗?

scaler = StandardScaler()


whole_scaled = scaler.fit_transform(df_milk_types['Whole'].values.reshape(-1, 1))
red_fat_scaled = scaler.fit_transform(df_milk_types['Two Percent Fat'].values.reshape(-1, 1))
low_fat_scaled = scaler.fit_transform(df_milk_types['One Percent Fat'].values.reshape(-1, 1))
skim_scaled = scaler.fit_transform(df_milk_types['Skim'].values.reshape(-1, 1))

1 个答案:

答案 0 :(得分:0)

您所使用的方法已经足够有效。但是,如果您想自己实施,则可以执行以下操作:

def Standardize(x):
     x = np.asarray(x)
     return (x - np.mean(x)) / (np.std(x))

但是请记住,像这样编写,您将无法应用反向变换,因为您将失去原始数据的均值和标准差。

无论如何...现在应用该方法很简单:

df.loc[:, 'column_name'] = Standardize(df.loc[:, 'column_name'])

要记住的另一件事是,当数据帧中的行数很大时,np.std将返回内存错误...