python处理一个求和运算 | 您所在的位置:网站首页 › python按列求和 › python处理一个求和运算 |
我现在有个txt文件如下:1 167 334555717 2 19 334555718 2 167 334555718 3 167 334555720 4 172 334555721 5 21 334555723 5 147 334555723 5 50 334555723第一列是序号,第二列是字数,第三列是ID。相同ID的序号是相同的。然后现在我需要用python进行下述处理:就是将相同id的字数相加得到一个总和sum,然后对sum进行如下的公式计算:result=字数1/sumlog(字数1/sum)+字数2/sumlog(字数2/sum)+......按这个文件举例来说,就是比如334555718的这个id的result计算如下:sum=19+167result=19/sumlog(19/sum)+167/sumlog(167/sum)33455723的这个id的result就是sum=21+147+50result=21/sumlog(21/sum)+147/sumlog(147/sum)+50/sum*log(50/sum)然后依次输出每个id的序号,id号跟result。我的代码如下: import math f = open("F:\\net.txt") lines = f.readlines() rev_id=[] for line in lines: num = line.split()[0] zishu = line.split()[2] revid = line.split()[3] sum = zishu if revid in rev_id: sum += zishu result += zishu/sum*(math.log(zishu/sum)) rev_id.append(revid)我的result的结果肯定不对,因为sum的值不是固定的全部总和。。请问该怎么做。 |
CopyRight 2018-2019 实验室设备网 版权所有 |