将数据框中的每一行除以 Python 中的向量

Posted

技术标签:

【中文标题】将数据框中的每一行除以 Python 中的向量【英文标题】:Dividing each row in a dataframe by a vector in Python 【发布时间】:2021-03-04 03:40:05 【问题描述】:

我在逻辑回归之前对我的数据进行特征缩放。

在我尝试将列除以 max_min 向量之前,一切都很完美。它似乎在每一列中都有效,但在年龄列中无效,但我似乎找不到原因。

我之前已经拆分数据进行测试和训练,下面我正在尝试扩展 X_train 数据。

# Working out the min value for each column and subtracting this from each row in the data
X_train_min = np.array(X_train0.min())
X_train0.sub(X_train_min.squeeze(), axis=1)

从上面的代码中,我得到一个表,其中每个值都减去了其列的最小值,这是正确的。 输出: output

# Working out the max value for each column and the difference between the max and min values
X_train_max = np.array(X_train0.max())
max_min = np.array(X_train0.max()) - np.array(X_train0.min())
print(max_min)

输出:

[   56     1     3     2     4     3 18174    56     7]

这是我遇到问题的地方:

# Dividing each row in the data by the difference between the max and min values of its column
X_train0.div(max_min, axis=1)

我已经获得了一个表格,其中每个值都除以向量,除了第一列“年龄”,其中数字不对应于除法。 输出: output

【问题讨论】:

【参考方案1】:

min 已被减去时,您正在除以max - min。您只需要除以新的最大值即可:

max_min = np.array(X_train0.max())

【讨论】:

我找到的特征缩放公式是 (x-min)/(max-min) @RebeccaStephens 只有在应用公式之前同时取最大值和最小值时才成立。从您的代码中,看起来您在减去 min 后计算 max

以上是关于将数据框中的每一行除以 Python 中的向量的主要内容,如果未能解决你的问题,请参考以下文章

在Python中的数据框中的每一行的两个子字符串之间选择字符串

为数据框中的每一行应用一个函数,用于另一个数据框中的每一行

将数据框中的每一行与单独的数据框结合起来[重复]

将邮政编码 API 调用应用于数据框中的每一行

在 Pyspark ML 中的稀疏向量数据类型列上创建 Python 转换器

对于 R 数据框中的每一行