计算上面各行的算术平均值
calculate arithematic mean of rows above
我有一个如下所示的数据集:
Value Type mean
-1.975767 Weather
-0.540979 Fruits
-2.359127 Fruits
-2.815604 Corona
-0.929755 Weather
我想遍历每一行并计算上面每一行的平均值(仅当 Type 匹配时)。我想把这个值放在 mean 列中。均值计算公式:
所有值的总和/观测值数
在这里,观察次数将是到目前为止某个类型出现的次数。
例如,在第一行中,上面没有“天气”行,因此天气 n = 1。所以平均值为 -1.975767 / 1 = -1.975767。
在第二行中,其上方没有 FRUITS 行,因此平均值将为 -0.540979/1 = -0.540979。
然而,在第三行中,当我们扫描所有前面的行时,我们看到 FRUITS 已经在此之前发生,因此,对于 Fruits,n = 2。所以我们应该得到最后一个 FRUIT 的值并计算一个新的平均值。所以在这里,平均值将是 -0.540979 + (-2.359127) 除以 2.
Value Type mean
-1.975767 Weather -1.975767
-0.540979 Fruits -0.540979
-2.359127 Fruits (-0.540979 -2.359127) / 2
-2.815604 Corona -2.815604
-0.929755 Weather (-1.975767 -0.929755) / 2
执行此操作的有效方法是什么?
我看到两个可能的 sol:
- 我们以某种方式存储每种类型的 N 值,然后仅使用特定类型的最后计算平均值,通过将 N 递增 1 来更新 N,然后计算特定行的新平均值。
- 如果存储N值不方便,那么每次我们扫描一个类型的出现时,我们检查它对应的值并再次计算所有值的平均值。
我有一个如下所示的数据集:
Value Type mean
-1.975767 Weather
-0.540979 Fruits
-2.359127 Fruits
-2.815604 Corona
-0.929755 Weather
我想遍历每一行并计算上面每一行的平均值(仅当 Type 匹配时)。我想把这个值放在 mean 列中。均值计算公式:
所有值的总和/观测值数
在这里,观察次数将是到目前为止某个类型出现的次数。
例如,在第一行中,上面没有“天气”行,因此天气 n = 1。所以平均值为 -1.975767 / 1 = -1.975767。
在第二行中,其上方没有 FRUITS 行,因此平均值将为 -0.540979/1 = -0.540979。
然而,在第三行中,当我们扫描所有前面的行时,我们看到 FRUITS 已经在此之前发生,因此,对于 Fruits,n = 2。所以我们应该得到最后一个 FRUIT 的值并计算一个新的平均值。所以在这里,平均值将是 -0.540979 + (-2.359127) 除以 2.
Value Type mean
-1.975767 Weather -1.975767
-0.540979 Fruits -0.540979
-2.359127 Fruits (-0.540979 -2.359127) / 2
-2.815604 Corona -2.815604
-0.929755 Weather (-1.975767 -0.929755) / 2
执行此操作的有效方法是什么?
我看到两个可能的 sol:
- 我们以某种方式存储每种类型的 N 值,然后仅使用特定类型的最后计算平均值,通过将 N 递增 1 来更新 N,然后计算特定行的新平均值。
- 如果存储N值不方便,那么每次我们扫描一个类型的出现时,我们检查它对应的值并再次计算所有值的平均值。