数据帧的加权平均值

问题描述 投票:1回答:1

我发现了一些有关平均数据帧的答案,但是没有一个答案包括权重的处理。我想出了一种获得想要的结果的方法(请参见标题),但我想知道是否有更直接的方法来实现相同的目标。

我要做的是:

  • 将每个数据帧转换为数组(行)的数组,我们称其为arOfArs:在df.iloc[i].valuesnp.vstack上使用循环
  • 将所有arOfArs(以前是数据帧)放入一个数组,我们称它为arOfTransfDfs
  • 取平均值:

ave = np.average(arOfTransfDfs, axis=0, weights=myWeights)

其中myWeights是一个数组,其中每个值都是对应数据帧的权重。

  • 转换回数据框:

  • dfOut = pd.DataFrame(np.row_stack(ave))
    

    正如我所说的那样,它工作起来更加复杂,因为我必须从数据帧中屏蔽nan,但希望有一种更简洁的方法可以做到这一点。

    我发现了一些有关平均数据帧的答案,但是没有一个答案包括权重的处理。我想出一种方法来获得想要的结果(请参阅标题),但我想知道是否还有更多...

    python pandas dataframe
    1个回答
    0
    投票

    您不需要来回转换数据帧。如果您从数学的角度看加权平均数,它与avg(array)无关,而是avg(array * weights)。

    © www.soinside.com 2019 - 2024. All rights reserved.