1

私はまだ Python を学んでいますが、配列の操作方法はまだわかりません。

たとえば、タブ区切りのファイルを読みたいのですが(ただし、私の場合は約400行になります):

  Col1      Col2
  0.0001    0.6
  0.0001    0.5
  0.000006  0.8
  0.0001    0.0003
  0.002     1
  0.002     3

次の出力を取得したい:

Col1      Col2
0.0001    0.36676667
0.000006  0.8
0.002     2

したがって、 Col1に同じ値を保持したいのですが、Col1の同じ値に対応するCol2の値の平均を取ります。

次を使用して配列を読み取ることができます。

  arr = np.genfromtxt('test.csv', dtype=None, delimiter='\t', skiprows=1)

しかし、これらの操作を行う方法と、新しく生成されたデータで新しいファイルを作成する方法がわかりません。

助けてくれてありがとう!

4

1 に答える 1

1

collections.defaultdictwithlistをデフォルトの引数として使用します。

最初の列の値をキーとして取得し、2 番目の値を追加します。

import csv
from collections import defaultdict

# Gather the data from the CSV file
d = defaultdict(list)
with open('data.csv', 'r') as csvfile:
    reader = csv.reader(csvfile, delimiter='\t')
    for row in reader:
        d[float(row[0])].append(float(row[1]))

# Print the mean.
for k in d.keys():
    print k, sum(d[k])/len(d[k])
于 2013-07-23T20:58:42.857 に答える