Pandas数据框矩阵乘法使用@



我试图在Pandas DataFrame和Pandas Series之间执行矩阵乘法。我这样设置它们:

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

我想执行x @ c @ x,但我一直得到ValueError: matrices are not aligned错误标志。我的矩阵设置得不对吗?我不确定我哪里出错了。

x @ c返回一个与x具有不同索引的Series对象。您可以使用底层numpy数组来执行计算:

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

最新更新