gpt4 book ai didi

python - 整个数据帧python的最小最大缩放

转载 作者:行者123 更新时间:2023-12-04 03:58:38 26 4
gpt4 key购买 nike

我正在使用 from sklearn.preprocessing import MinMaxScaler
使用以下代码和数据集:

df = pd.DataFrame({
"A" : [-0.5624105,
-0.5637749,
0.2973856,
0.619784,
0.007297921,
0.8146919,
0.1082434,
-0.2311236,
-0.6945567,
-0.6807524,
-0.1017431,
0.5889628,
0.5384794,
0.3906553,
0.3843442,
0.4408366,
0.4035791,
0.05258237,
-0.4847771
],
"B" : [-0.5068743,
0.1422121,
0.6444226,
0.4959088,
-0.2260773,
0.3420533,
0.2346546,
0.1177824,
-0.7701161,
-0.7566853,
-0.5091485,
0.4509938,
0.4209853,
0.304058,
0.3753832,
0.6958977,
0.6763205,
0.05536954,
-0.9857719
]})

min_max_scaler = MinMaxScaler(feature_range=(0,255))

print(df)

df[df.columns] = min_max_scaler.fit_transform(df[df.columns])

print(df)
print(type(df))

我想用整个数据集中的最小值和整个数据集中的最大值来缩放它我如何使用相同的代码管理它?是否可以?
           A         B
0 -0.562411 -0.506874
1 -0.563775 0.142212
2 0.297386 0.644423
3 0.619784 0.495909
4 0.007298 -0.226077
5 0.814692 0.342053
6 0.108243 0.234655
7 -0.231124 0.117782
8 -0.694557 -0.770116
9 -0.680752 -0.756685
10 -0.101743 -0.509149
11 0.588963 0.450994
12 0.538479 0.420985
13 0.390655 0.304058
14 0.384344 0.375383
15 0.440837 0.695898
16 0.403579 0.676320
17 0.052582 0.055370
18 -0.484777 -0.985772
A B
0 22.327190 72.617646
1 22.096664 171.041874
2 167.596834 247.194572
3 222.068703 224.674680
4 118.584127 115.196304
5 255.000000 201.344798
6 135.639699 185.059394
7 78.300845 167.337476
8 0.000000 32.700971
9 2.332350 34.737551
10 100.160748 72.272798
11 216.861207 217.863993
12 208.331620 213.313653
13 183.355519 195.583380
14 182.289206 206.398778
15 191.834063 255.000000
16 185.539101 252.031411
17 126.235309 157.873501
18 35.443994 0.000000

我不希望每一列都有不同的映射,我需要使用 -0.985772 0.814692(b 列第 18 行,a 列第 5 行)来映射它

最佳答案

您有两种方法可以做到这一点:

# Manually:
min_value, max_value = df.min().min(), df.max().max()
scaled1 = (df - min_value) * 255 / (max_value - min_value)

# Using MinMaxScaler
min_max_scaler = MinMaxScaler(feature_range=(0,255))
# Stack everything into a single column to scale by the global min / max
tmp = df.to_numpy().reshape(-1,1)
scaled2 = min_max_scaler.fit_transform(tmp).reshape(len(df), 2)
两者都返回相同的结果:
np.isclose(scaled1, scaled2).all()
# True
您可以使用缩放值创建一个新的 DataFrame:
scaled = pd.DataFrame(scaled1, index=df.index, columns=df.columns)
或者将它们分配回 df :
df.loc[:] = scaled1

关于python - 整个数据帧python的最小最大缩放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63463531/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com