複数の行と 8 列のデータ ファイルがあります - 列 1、2、5 に同じデータがある行の列 8 を平均したい - たとえば、私のファイルは次のようになります。
564645 7371810 0 21642 1530 1 2 30.8007
564645 7371810 0 21642 8250 1 2 0.0103
564645 7371810 0 21643 1530 1 2 19.3619
列 1-2-5 が同一であるため、1 行目と 3 行目の最後の列を平均したいと考えています。
出力を次のようにしたい:
564645 7371810 0 21642 1530 1 2 25.0813
564645 7371810 0 21642 8250 1 2 0.0103
私のファイル(テキストファイル)はかなり大きく(〜10000行)、冗長データ(上記のルールに基づく)は一定の間隔ではないため、コードで冗長データを見つけて平均化する必要があります...
larsks コメントへの応答 - これが私の 4 行のコードです...
import os
import numpy as np
datadirectory = input('path to the data directory, ')
os.chdir( datadirectory)
##READ DATA FILE AND CREATE AN ARRAY
dataset = open(input('dataset_to_be_used, ')).readlines()
data = np.loadtxt(dataset)
##Sort the data based on common X, Y and frequency
datasort = np.lexsort((data[:,0],data[:,1],data[:,4]))
datasorted = data[datasort]