【问题标题】:How to scale data between -1 and 1 in pandas如何在熊猫中缩放-1和1之间的数据
【发布时间】:2020-07-16 20:40:30
【问题描述】:

大家好!有人可以帮我解决这个问题。 bh_df 是我正在使用的数据集。正如您现在所看到的,数据介于大约。 79和77。我需要在-1和1之间缩放。提前谢谢你!我想做 x_max-x_min 的事情(这里建议 https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.MinMaxScaler.html),但我的最小数据点是 0,所以我认为它不会做任何有用的事情。

【问题讨论】:

标签: python pandas scaling normalizing


【解决方案1】:

为此,您需要一个函数来转换您的数据,以便

x_new = (x - min_x)  / (max_x - min_x)

使用熊猫

df = df.apply(lambda x:(x-min(x))/(max(x)-min(x)), axis = 0)

使用sklearn.preprocessing.MinMaxScaler

from sklearn.preprocessing import MinMaxScaler


scaler = MinMaxScaler(feature_range=(-1, 1))
normalised_data = scaler.fit_transform(df)

作为旁注,如果应该将数据馈送到 ML 模型,您应该在训练时调用 fit(),在测试和验证集时调用 transform()

【讨论】:

  • 谢谢!我尝试了sklearn。它说 MinMaxScaler 没有定义。 import sklearn from sklearn import preprocessing min_max_scaler = preprocessing.MinMaxScaler() # bh = 水泡高度波长 = 532.0 #nm # 将 bh_df 设置为相位差数据帧 bh_df = A_df.copy() scaler = MinMaxScaler(feature_range=(-1, 1) ) normalised_data = scaler.fit_transform(df) # 从相位差到路径长度差的变化 bh_df["CH1"] = (wavelength/(2*np.pi))*A_df["CH1"] ...
  • @GoodDay 尝试按照我的回答进行导入。不过,我无法将代码读取为 100%。更新您的问题并在那里分享代码
  • 我编辑了代码(更新了我的问题)。我不确定您所说的“在那里分享代码 – Giorgos Myrianthous”是什么意思,因为我在您的个人资料上找不到分享它的地方。
  • 感谢您的帮助!最后一件事。如何摆脱蓝线(请参阅我更新的问题)?谢谢!
  • @GoodDay 如果您有其他问题,请提出一个新问题,而不是在一个线程中提出太多问题。
猜你喜欢
  • 2020-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-19
  • 2015-10-18
相关资源
最近更新 更多