0

それぞれ 2 つの列を含む 2 つのファイルがあります。最初の列は整数です。2 列目は線形座標です。すべての座標が表示されるわけではなく、欠落しているすべての座標を挿入したいと考えています。以下は、私のデータの 1 つのファイルからの例です。

  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) を追加する必要があります。最後に、2 つのファイルの最初の列の対応する行の間で簡単な計算 (比率) を行いたいと思います。比率は実数でなければなりません。

可能であれば 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 に答える