Усреднение столбцов в текстовом файле с заголовками строк и столбцов - PullRequest
0 голосов
/ 30 мая 2018

Я новичок в группе и в питоне.У меня есть очень специфический тип входного файла, с которым я работаю.Это текстовый файл с одной строкой заголовка текста.Кроме того, есть колонка текста, которая делает вещи более раздражающими.То, что я хочу сделать, это прочитать в этом файле, а затем выполнить операции над столбцами чисел (например, усреднение, stdev и т. Д.) ... но чтение в файле и разбор текстового столбца доставляют мне проблемы.

Я играл со многими различными подходами и подошел к нему близко, но решил, что смогу связаться с группой здесь.Если бы это был Matlab, я бы снял его несколько часов назад.На данный момент, если я использовал фиксированную ширину для определения своих столбцов, я думаю, что это будет работать, но я подумал, что, вероятно, есть более эффективный способ чтения строк и правильного игнорирования строк.

Вот формат файла,Как видите, строка 1 является заголовком ... поэтому ее можно игнорировать.столбец 1 содержит текст.

postraw.txt

.... Мне кажется, я понял это.Мой код, вероятно, очень сырой, но пока работает:

CTlist = []
CLlist = []
CDlist = []
CMZlist = []
LDelist = []
loopout = {'a1':CTlist, 'a2':CLlist, 'a3':CDlist, 'a4':CMZlist, 'a5':LDelist}

#Specifcy number of headerlines
headerlines = 1

#set initial index to 0
i = 0

#begin loop to process input file, avoiding any header lines
with open('post.out', 'r') as file:
    for row in file:
    if i > (headerlines - 1):
     rowvars = row.split()
     for i in range(2,len(rowvars)):
        #print(rowvars[i]) #JUST A CHECK/DEBUG LINE
        loopout['a{0}'.format(i-1)].append(float(rowvars[i]))
    i = i+1

1 Ответ

0 голосов
/ 31 мая 2018
CTlist = []
CLlist = []
CDlist = []
CMZlist = []
LDelist = []
loopout = {'a1':CTlist, 'a2':CLlist, 'a3':CDlist, 'a4':CMZlist, 'a5':LDelist}

#Specifcy number of headerlines
headerlines = 1

#set initial index to 0
i = 0

#begin loop to process input file, avoiding any header lines
with open('post.out', 'r') as file:
for row in file:
if i > (headerlines - 1):
 rowvars = row.split()
 for i in range(2,len(rowvars)):
    #print(rowvars[i]) #JUST A CHECK/DEBUG LINE
    loopout['a{0}'.format(i-1)].append(float(rowvars[i]))
i = i+1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...