python - 如何仅标准化数据帧的一列,同时保持其他列不受影响?

标签 python python-3.x pandas numpy

假设我们有一个 df 如下:

id A  B
50 1  5
60 2  6
70 3  7
80 4  8

我想知道如何将 B 列 标准化为 0 到 1 之间,同时保留其他列 idA 列 完全不受影响?

编辑 1:如果我执行以下操作

import pandas as pd
df = pd.DataFrame({ 'id' : ['50', '60', '70', '80'],
        'A' : ['1', '2', '3', '4'],
        'B' : ['5', '6', '7', '8']
        })

from sklearn import preprocessing
min_max_scaler = preprocessing.MinMaxScaler()
X_minmax = min_max_scaler.fit_transform(df.values[:,[2]])

我得到的X_minmax如下

0
0.333333
0.666667
1

我希望将这 4 个值放置在数据帧 df 中的列 B 的位置,而不更改其他 2 列,如下所示:

    id A  B
    50 1  0
    60 2  0.333333
    70 3  0.666667
    80 4  1

最佳答案

您可以重新分配该列的值:

df.B = (df.B - df.B.mean()) / (df.B.max() - df.B.min())

关于python - 如何仅标准化数据帧的一列,同时保持其他列不受影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55405550/

相关文章:

python-3.x - Selenium 可以检测 Python3 中网页何时完成加载吗?

python - 将 float 转换为 int,以便保留所有信息或如何获取长 float 的长度

python - OSError : [Errno 22] Invalid argument on file path while modifying a file

python - Python中使用嵌套循环绘制星号倒三角形

python - 使用 scipy.stats.multivariate_normal.pdf 时出现错误 :operands could not be broadcast together with shapes (1, 8) (21,)

python - 使用 Python 将 Excel DATE(而非日期时间)数据插入 SQL Server

python - 如何从 Dataframe 列形成元组列表

python - Pandas:增量计算列中的出现次数

python - Pandas - 在多列上有条件地合并数据框

相当于 dateutil.parser.parse 的 python 标准库