我有一个名为df的数据帧,它包含6个数字列。我想做的是通过减去最大值来重新缩放每个属性给定列的值从列值中减去,然后除以通过给定柱我还包括了一些乘法和加法重新缩放
重新缩放与MinMaxScaler类略有不同。
numeric_attribs=list(df)
analyMaxColValues = df.max()
analMinColValues = df.min()
df_max= analyMaxColValues.to_frame()
df_min= analyMinColValues.to_frame()
for i, j, k in zip(numeric_attribs , df_max.index,
df_min.index):
df[i]=(.999*((df[i]-df_max[j].values)/df_max[j].values-
df_min[k].values)))+ .0005
您提到:
";我想做的是通过从列值中减去给定列的最大值,然后除以给定列的最小值和最大值的差来重新缩放每个属性。我也包括了一些乘法和加法的这个重新缩放">
基于此,如果我没有正确理解,请纠正我,但是,你试图完成的步骤似乎是:
- 从一列中的所有行中减去该列的最大值
- 将步骤1的结果除以每一列中的最大值和最小值之差
- 乘以0.999,将步骤2的结果加0.0005(来自代码(
这可以通过以下两行代码轻松完成:
for i in df.columns:
df[i] = 0.999 * ( df[i].values - df[i].values.max() ) / (df[i].values.max() -df[i].values.min() ) + 0.0005