2024-03-28 09:32:11 发布
网友
我在pandas中有一个数据框,其中每个列都有不同的值范围。例如:
数据框:
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)
您可以使用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学习documentation关于预处理数据:将功能缩放到一个范围。
基于这篇文章:https://stats.stackexchange.com/questions/70801/how-to-normalize-data-to-0-1-range
您可以执行以下操作:
def normalize(df): result = df.copy() for feature_name in df.columns: max_value = df[feature_name].max() min_value = df[feature_name].min() result[feature_name] = (df[feature_name] - min_value) / (max_value - min_value) return result
你不需要一直担心你的价值观是消极的还是积极的。值应该很好地分布在0和1之间。
一个简单的方法是使用熊猫(这里我想使用平均标准化)
normalized_df=(df-df.mean())/df.std()
要使用最小最大规格化,请执行以下操作:
normalized_df=(df-df.min())/(df.max()-df.min())
您可以使用sklearn包及其相关的预处理实用程序来规范化数据。
有关更多信息,请参阅scikit学习documentation关于预处理数据:将功能缩放到一个范围。
基于这篇文章:https://stats.stackexchange.com/questions/70801/how-to-normalize-data-to-0-1-range
您可以执行以下操作:
你不需要一直担心你的价值观是消极的还是积极的。值应该很好地分布在0和1之间。
一个简单的方法是使用熊猫(这里我想使用平均标准化)
要使用最小最大规格化,请执行以下操作:
相关问题 更多 >
编程相关推荐