规范化数据框的列

新手上路,请多包涵

我在熊猫中有一个数据框,其中每一列都有不同的值范围。例如:

东风:

 A     B   C
1000  10  0.5
765   5   0.35
800   7   0.09

知道如何标准化这个数据框的列,其中每个值都在 0 和 1 之间?

我想要的输出是:

 A     B    C
1     1    1
0.765 0.5  0.7
0.8   0.7  0.18(which is 0.09/0.5)

原文由 ahajib 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 410
2 个回答

您可以使用包 sklearn 及其相关的预处理实用程序来规范化数据。

 import pandas as pd
from sklearn import preprocessing

x = df.values #returns a numpy array
min_max_scaler = preprocessing.MinMaxScaler()
x_scaled = min_max_scaler.fit_transform(x)
df = pd.DataFrame(x_scaled)

有关更多信息,请查看关于预处理数据的 scikit-learn 文档:将特征缩放到一个范围。

原文由 Sandman 发布,翻译遵循 CC BY-SA 4.0 许可协议

使用 Pandas 的一种简单方法:(这里我想使用均值归一化)

 normalized_df=(df-df.mean())/df.std()

使用最小-最大归一化:

 normalized_df=(df-df.min())/(df.max()-df.min())

编辑:为了解决一些问题,需要说明 Pandas 在上面的代码中自动应用了 colomn-wise 函数。

原文由 Cina 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题