我是一名生物学学生,对Python还比较新,希望有人能够帮助我解决一个问题。
通过一些后续代码,我创建了一个类似下面示例的Pandas数据框:
Distance. No. of values Mean rSquared
1 500 0.6
2 80 0.3
3 40 0.4
4 30 0.2
5 50 0.2
6 30 0.1
我可以提供我之前创建这个数据框的代码,但我认为它不是特别相关。
我需要对“数值数量”列进行求和,直到达到值≥100;然后结合相邻列的行数据,按距离和平均r2值的加权平均值进行计算,如下例所示。
Mean Distance. No. Of values Mean rSquared
1 500 0.6
(80*2+40*3)/120 (80+40) = 120 (80*0.3+40*0.4)/120
(30*4+50*5+30*6)/110 (30+50+30) = 110 (30*0.2+50*0.2+30*0.1)/110
etc...
我知道pandas有一个.cumsum
函数,我可能可以将它与一个for
循环和一个if
语句结合起来使用,该语句检查上限并在大于或等于上限时将总和重置为0。然而,我不知道如何对相邻的列进行平均。
任何帮助都将不胜感激!