过滤具有给定ID的最大值的行

时间:2016-12-07 00:47:57

标签: python

我有一个表格文件,其中第一列有ID,第二列有数值。我需要生成一个文件,其中只包含每个ID得分最高的行。

所以,我想接受这个:

ES.001      2.33
ES.001      1.39
ES.001    119.55
ES.001     14.55
ES.073      0.35
ES.073     17.95
ES.140      1.14
ES.140     53.88
ES.140     18.28
ES.178    150.27

并生成这个:

ES.001    119.55
ES.073     17.95
ES.140     53.88
ES.178    150.27

我怎样才能在Python中执行此操作?

1 个答案:

答案 0 :(得分:0)

请看下面的代码。也许它可以帮助你。

with open('FILENAME') as f:
      lines = f.readlines()
      ids = {}
      for line in lines:
            line = line.rstrip()
            line = line.split(' ')
            value = ids.get(line[0], list())
            value.append(float(line[-1]))
            ids[line[0]] = value

max_values = []
for key, value in ids.items():
      print key, max(value)