Search code examples
python-3.xpandasdataframeseriesmatrix-multiplication

Pandas Dataframe Matrix Multiplication using @


I am attempting to perform matrix multiplication between a Pandas DataFrame and a Pandas Series. I've set them up like so:

c = pd.DataFrame({
    "s1":[.04, .018, .0064],
    "s2":[.018, .0225, .0084],
    "s3":[.0064, .0084, .0064],
    })
x = pd.Series([0,0,0], copy = False)

I want to perform x @ c @ x, but I keep getting a ValueError: matrices are not aligned error flag. Am I not setting up my matrices properly? I'm not sure where I am going wrong.


Solution

  • x @ c returns a Series object which has different indices as x. You can use the underlying numpy array to do the calculation:

    (x @ c).values @ x.values
    # 0.39880000000000004