将数据框中的每一行除以 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中的数据框中的每一行的两个子字符串之间选择字符串