我有两个文件,每个文件包含两列。第一列是整数。第二列是线性坐标。并非每个坐标都被表示,我想插入所有缺失的坐标。以下是我的数据的一个文件中的示例:
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脚本。任何帮助是极大的赞赏。
答案 0 :(得分: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