如果你有两个df用于使用所选列进行相乘,并将结果存储在一个新列中,
如何相乘
DF1:
AAPL IBM GOOG XOM
2011-01-10 16:00:00 1500 0 0 0
DF2:
AAPL IBM GOOG XOM
340.99 143.41 614.21 72.02
340.18 143.06 616.01 72.56
我想将df1中的aapl与df2中的340.99相乘,并将结果存储在transaction_amount中。
答案 0 :(得分:0)
transaction_amount = np.diag(df1.dot(df2.T))
基本上,要做你想做的事,你想做df1和df2的某种形式的点积
df1.dot(df2)
但由于它们具有匹配的尺寸,因此您需要转置其中一个DataFrames
df2.T
如果您了解矩阵点产品的工作原理,您将理解您只需要从结果矩阵的对角线开始的数组数据。即:您只需要(日X的AAPL价格*日Y的AAPL股票,其中X == Y)因此,矩阵中与您相关的值位于(0,0),(1,1) ,(2,2)等,即:对角线。
在使用cumsum创建保留矩阵时,此行在计算投资组合价值时也很有用。
一些有用的资料
http://www.mathsisfun.com/algebra/matrix-multiplying.html http://mathinsight.org/dot_product_matrix_notation