所以我有两个数据帧,一个大小(462,38),另一个(36,34)。理论上,我应该可以将它们相乘(第一个不带前两列,即462,36))并得到一个大小为(462,34)的矩阵,但是我收到了一个错误。这是我使用的脚本:
df_technique = df_binary.iloc[:,2:].mul(df_pim.values, axis=0)
df_binary是大小为(462,38)的数据帧 df_pim是大小为(36,34)的数据帧
我得到了这个错误:
ValueError: Unable to coerce to DataFrame, shape must be (462, 36): given (36, 34)
这对熊猫来说是个新手,但有点搞不清为什么这不起作用。在
让我们创建一个小玩具示例:
让我们试试
^{pr2}$.mul
:这是可行的,但是有很多NaN值。这是因为
.mul
执行数据帧的元素级乘法,并且期望数据帧的形状是(A, B) x (A, B)
。在使用df2.values时,我们可以重现您的错误,因为pandas试图从
(36, 34)
df2.values numpy数组中创建一个(462, 36)
数据帧,但失败了:从你的描述来看,你打算用}:
.dot
来代替(M, N) x (N, P) = (M, P)
而不是{相关问题 更多 >
编程相关推荐