我是Python新手,正在寻找帮助以使2个数据帧随时间增加。如果您能帮助理解错误,我们将不胜感激
第一数据帧(cov)
Date NoDur Durbl Manuf
2018-12-27 NoDur 0.000109 0.000112 0.000118
Durbl 0.000112 0.000339 0.000238
Manuf 0.000118 0.000238 0.000246
2018-12-28 NoDur 0.000109 0.000113 0.000117
Durbl 0.000113 0.000339 0.000239
Manuf 0.000117 0.000239 0.000242
2018-12-31 NoDur 0.000109 0.000113 0.000118
Durbl 0.000113 0.000339 0.000239
Manuf 0.000118 0.000239 0.000245
第二数据帧(w)
Date NoDur Durbl Manuf
2018-12-27 -69.190732 -96.316224 -324.058486
2018-12-28 -113.831750 30.426696 -410.055587
2018-12-31 -101.365016 -16.613136 -362.232014
守则:
std = np.dot(np.transpose(w) , np.matmul(cov , w))
错误:
ValueError: matmul: Input operand 1 has a mismatch in its core dimension 0, with gufunc signature (n?,k),(k,m?)->(n?,m?) (size 12361 is different from 10)
我只显示数据帧的小片段。原始cov数据框为123610行×10列,w数据框为12361行×10列
预期产出:
Date
2018-12-27 44.45574103083
2018-12-28 46.593367859
2018-12-31 45.282932300
非常感谢
我认为您可以在
'Date'
级别上使用groupby
,然后将w
中与组中的日期对应的权重相乘:由于三维数组可以更好地表示数据,您还可以避免} :
apply
中的组上的隐式循环,并使用^{性能方面,第二种解决方案似乎更好:
数据:
相关问题 更多 >
编程相关推荐