如何对字典中的多个表乘以权重后相加

请问一下,我有一个字典datadict,key是fa1,fa2,,faN,value是对应的表。如下图:

attachments-2023-09-sa6fWpfz64fc3d96ea685.png

有没有什么办法可以快速的把每一个表乘一个权重值(已给出)然后全部加在一起?其中这些表大小相同,每个都是三列,前两列是datetime,symbol,第三列是自己的名称,想要对自己名称这一列进行加权相加,普通的做法就是temp = lj(a1,a2),temp = lj(temp,a3)....... 但若这样写,因为表多就会写很多行,有没有比较简洁方便的方法?

lj完之后还有一个乘权重相加的操作,所以我在想能不能把这一步操作也加到里面了,权重就是一个N长度的向量,N是表的个数,并且我现在是把这N个表放在字典里,这样比较简洁,字典的key就是表里第3列的列名,value就是表。

请先 登录 后评论

1 个回答

wale

试试下面写法:

x = `fa1`fa2`fa3
y = (t1,t2,t3)
d = dict(x,y)
N=take(1\3,3)

def getVal(tb, colName, weight){
        return tb[colName]*weight
}
rowSum(each(getVal,d.values(),d.keys(),N))
请先 登录 后评论