【发布时间】:2017-11-12 20:38:24
【问题描述】:
有没有办法减去不同维度的数据框? 我有带有 [300X1] 的 A 和带有 [300X188] 数据帧的 B。我想将 A 列减去所有 B 列值。 我尝试了一个 while 循环来一次减去 B 矩阵 1 列,但出现错误说 TypeError: unhashable type: 'slice'。
这样的……
A B
8 1 2 3 4 5
9 2 2 3 4 5
9 3 2 3 4 5
6 4 2 3 4 5
8 5 2 3 4 5
输出:
New Table
7 6 5 4 3
7 7 6 5 4
6 7 6 5 4
2 4 3 2 1
3 6 5 4 3
【问题讨论】:
-
请贴出您所提到的错误代码。
-
试试
A[:, np.newaxis] - B。这适用于A = np.arange(5)和B = np.arange(25).reshape(5, 5)(A的形状是(5, ),而不是(5, 1))。 -
@Michael 我试过了,我得到一个错误提示 TypeError: unsupported operand type(s) for -: 'str' and 'int'。我认为在 python 3 A 中以字符串形式返回而不是整数。我试图通过
int(A)将 A 转换为整数并得到另一个错误:只有长度为 1 的数组可以转换为 Python 标量。有没有办法解决这个问题? -
这些错误不会出现在我的示例中,
np.arange是一个 dtype 为int的数组。顺便说一句,我使用的是 Python 3.4,所以这不是 Python 3 的错误。向我们展示一个会产生错误的最小工作示例。
标签: python multidimensional-array dataframe slice