如何解决在Python中计算校正因子
我有三个数据框:
true false category
36 25 3
40 25 3
46 23 3
40 22 5
42 20 4
56 39 3
50 40 3
44 27 4
51 39 5
54 31 5
50 38 4
我尝试为每个类别计算一个校正因子,以校正“假”值。 所以对于类别5:
correction1 = 40/22 = 1.82
correction2 = 51/39 = 1.31
correction3 = 54/31 = 1.74
则这些校正因子的算术平均值为1.62。 因此,结果应该是每个类别的平均校正因子。
问题:Python / NumPy中是否有内置函数来计算?
解决方法
您可以执行以下操作:
(df['true'].div(df['false'])).groupby(df['category']).mean()
这只是建立比率,然后将它们按category
分组以最终计算出mean
。
要获取测试数据:
from io import StringIO
infile= StringIO(
"""true false category
36 25 3
40 25 3
46 23 3
40 22 5
42 20 4
56 39 3
50 40 3
44 27 4
51 39 5
54 31 5
50 38 4""")
df= pd.read_csv(infile,sep='\s+',dtype='int16')
结果是:
category
3 1.545179
4 1.681806
5 1.622603
dtype: float64
,
如果您想坚持使用numpy:
{3: 1.5451794871794873,4: 1.68180636777128,5: 1.6226032032483646}
在您的数据示例中输出:
M_x * x >= X
但是我很喜欢jottbe的回答,如果您已经在使用熊猫,那可能就是这种方式。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。