【发布时间】:2015-02-02 03:01:10
【问题描述】:
目前,我正在使用类似于
的方式计算我的时刻moments = df_sum.groupby(level=[0,1])['myCol'].agg([np.min, np.median, np.mean, np.max, np.std, len])
但是,现在我有一个额外的列weights,其中包含相应的权重。也就是说,如果一列的权重是2,则在计算平均值、标准差等时,观察结果应该计算两次。我想使用weights 列重复我的计算。一种蛮力的方法是使用weights 重复我的观察,但是:
- 这将非常缓慢且效率低下
- 权重不一定是整数
许多统计函数都包含一个附加计算权重的参数,例如np.average:
weights : array_like, optional 与 a中的值。 a 中的每个值对平均值的贡献是 其相关的重量。权重数组可以是一维的(其中 如果它的长度必须是沿给定轴的 a 的大小)或 与a相同的形状。如果 weights=None,则假设 a 中的所有数据为 权重等于 1。
鉴于我想包含诸如np.average 之类的函数,我将如何从上面改写我的命令?是否有其他聚合函数的命令,例如median?简单来说,min 和 max 不应该改变,计算 len() 也不应该太难。
【问题讨论】: