'Matrix are not aligned for dot product

Here is my df matrix:

    0   Rooms   Area    Price
0   0   0.4 0.32    0.307692
1   0   0.4 0.40    0.461538
2   0   0.6 0.48    0.615385
3   0   0.6 0.56    0.646154
4   0   0.6 0.60    0.692308
5   0   0.8 0.72    0.769231
6   0   0.8 0.80    0.846154
7   0   1.0 1.00    1.000000

Here is my B matrix:

weights
0   88
1   87
2   44
3   46

When I write df.dot(B) it says matrix are not aligned. But here df is 8*4 matrix and B is 4*1 So shouldn't it generate a `8*1 matrix as a dot product?

errors: ValueError: matrices are not aligned



Solution 1:[1]

You can just do mul

out = df.mul(B['weights'].values,axis=1)
Out[207]: 
   0  Rooms   Area      Price
0  0   34.8  14.08  14.153832
1  0   34.8  17.60  21.230748
2  0   52.2  21.12  28.307710
3  0   52.2  24.64  29.723084
4  0   52.2  26.40  31.846168
5  0   69.6  31.68  35.384626
6  0   69.6  35.20  38.923084
7  0   87.0  44.00  46.000000

Solution 2:[2]

"the column names of DataFrame and the index of other must contain the same values,"

https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.dot.html

Try renaming the index of B to match the column names of A.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 BENY
Solution 2 Jeff