【发布时间】:2021-12-23 22:37:49
【问题描述】:
我希望能够计算4周列的平均值,但是如果Top x列中的数字小于4,我只想使用最大x值来计算平均值(即如果Top x = 3、计算均值时舍弃最低周值。
示例数据框:
df = pd.DataFrame({'week 1' : [1.0, 5.0, 7.0, 6.0, np.nan],
'week 2' : [3.0, np.nan, 9.0, 8.0, np.nan],
'week 3' : [1.0, 2.0, 2.0, 1.0, 6.0],
'week 4' : [np.nan, 4.0, 2.0, 7.0, 6.0],
'Top x' : [3.0, 2.0, 4.0, 3.0, 3.0]})
week 1 week 2 week 3 week 4 Top x
0 1.0 3.0 1.0 NaN 3.0
1 5.0 NaN 2.0 4.0 2.0
2 7.0 9.0 2.0 2.0 4.0
3 6.0 8.0 1.0 7.0 3.0
4 NaN NaN 6.0 6.0 3.0
预期输出:
week 1 week 2 week 3 week 4 Top x Mean
0 1.0 3.0 1.0 NaN 3.0 1.666667
1 5.0 NaN 2.0 4.0 2.0 4.500000
2 7.0 9.0 2.0 2.0 4.0 5.000000
3 6.0 8.0 1.0 7.0 3.0 7.000000
4 NaN NaN 6.0 6.0 3.0 6.000000
我不知道是否有一种方法可以将函数添加到 pandas.mean() 函数,或者是否更简单地将一周的前 x 列相加(也许将每一行变成一个列表?)然后除以顶部x 列。
【问题讨论】:
-
有人可以解释否决票吗?如果你不告诉我你为什么这么做,我怎么能知道什么值得投反对票?