我发现了一些有关平均数据帧的答案,但是没有一个答案包括权重的处理。我想出了一种获得想要的结果的方法(请参见标题),但我想知道是否有更直接的方法来实现相同的目标。
我要做的是:
arOfArs
:在df.iloc[i].values
和np.vstack
上使用循环arOfArs
(以前是数据帧)放入一个数组,我们称它为arOfTransfDfs
取平均值:
ave = np.average(arOfTransfDfs, axis=0, weights=myWeights)
其中
myWeights
是一个数组,其中每个值都是对应数据帧的权重。
转换回数据框:
dfOut = pd.DataFrame(np.row_stack(ave))
正如我所说的那样,它工作起来更加复杂,因为我必须从数据帧中屏蔽nan
,但希望有一种更简洁的方法可以做到这一点。
我发现了一些有关平均数据帧的答案,但是没有一个答案包括权重的处理。我想出一种方法来获得想要的结果(请参阅标题),但我想知道是否还有更多...
您不需要来回转换数据帧。如果您从数学的角度看加权平均数,它与avg(array)无关,而是avg(array * weights)。