0

我有两个文件,每个文件包含两列。第一列是一个整数。第二列是线性坐标。并非每个坐标都被表示,我想插入所有缺少的坐标。以下是我的一个数据文件中的示例:

  3 0
  1 10
  1 100
  2 1000
  1 1000002
  1 1000005
  1 1000006

对于此示例,坐标 1-9、11-99 等缺失但需要插入,并且需要指定零 (0) 计数。

  3 0
  0 1
  0 2
  0 3
  0 4
  0 5
  0 6
  0 7
  0 8
  0 9
  1 10
  ........

有了完整的行集,我需要将 add (1) 添加到每个计数(第一列)。最后,我想在两个文件中第一列的对应行之间做一个简单的计算(比率)。该比率应该是实数。

如果可能的话,我希望能够在 Unix 上做到这一点,但对 python 脚本也有点熟悉。任何帮助是极大的赞赏。

4

1 回答 1

2

这应该适用于 Python 2.3 及更高版本。

我假设您的文件是空格分隔的。

如果您想要超过 1000006 的值,则需要更改desired_range.

import csv

desired_range = 1000007
reader = csv.reader(open('fill_range_data.txt'), delimiter=' ')

data_map = dict()
for row in reader:
    frequency = int(row[0])
    value = int(row[1])

    data_map[value] = frequency

for i in range(desired_range):
    if i in data_map:
        print data_map[i], i
    else:
        print 0, i
于 2013-03-04T03:31:01.740 回答