Этот скрипт должен открыть «P01_3.csv», переименовать его записи (из столбца «type») и сохранить их в «OGT_files.csv»:
«P01_3.csv» выглядит следующим образом:
number latency duration channel bvtime bvmknum type code urevent
1.000000 0.002000 NaN 0.000000 -1382658386.000000 1.000000 boundary New Segment 1.000000
2.000000 0.042000 0.002000 0.000000 2.000000 actiCAP Data On Comment 2.000000
3.000000 12.566000 0.002000 0.000000 3.000000 S 4 Stimulus 3.000000
4.000000 13.586000 0.002000 0.000000 4.000000 TriODD Stimulus 4.000000
5.000000 16.462000 0.002000 0.000000 5.000000 Hit Stimulus 5.000000
6.000000 17.486000 0.002000 0.000000 6.000000 MP1 Stimulus 6.000000
7.000000 18.070000 0.002000 0.000000 7.000000 Hit Stimulus 7.000000
8.000000 19.102000 0.002000 0.000000 8.000000 TriODD Stimulus 8.000000
9.000000 22.662000 0.002000 0.000000 9.000000 Hit Stimulus 9.000000
10.000000 23.686000 0.002000 0.000000 10.000000 MP2 Stimulus 10.000000
11.000000 24.230000 0.002000 0.000000 11.000000 Hit Stimulus 11.000000
12.000000 25.254000 0.002000 0.000000 12.000000 TriPMC Stimulus 12.000000
13.000000 28.318000 0.002000 0.000000 13.000000 False Stimulus 13.000000
14.000000 29.336000 0.002000 0.000000 14.000000 MP3 Stimulus 14.000000
15.000000 30.038000 0.002000 0.000000 15.000000 Hit Stimulus 15.000000
мой код выглядит так:
OGT_files = open('OGT_files.csv','w')
OGT_files.write(str("Subj"+"\t"+"Run"+"\t"+"Event_type"+"\t"+"Event_number"+"\t"+"Accuracy"+"\t"+"Latency"+"\n"))
liste = []
rabo = []
file = open("../p01_3.csv","r")
file.seek(0) # Always beginns from the line 1
for line in file: # For loop across the file
line = line.split("\t")
liste.append(line[6])
Event_number = line[8]
Latency = line[1]
if line[6] == "Hit" and liste[-2] == 'TriODD': # Hit_OGT 1 - ODD
rabo.append("Hit_ODD_1")
OGT_files.write("\t\t"+"Hit_ODD_1"+"\t"+str(Event_number)+"\t"+str(Latency)+"\n")
elif line[6] == "Hit" and liste[-2] == 'TriEVE': # Hit_OGT 1 - EVE
rabo.append("Hit_EVE_1")
OGT_files.write("\t\t"+"Hit_EVE_1"+"\t"+str(Event_number)+"\t"+str(Latency)+"\n")
elif line[6] == "Hit" and liste[-2] == 'TriPMC': # Hit_PMC 1
rabo.append("Hit_PMC_1")
OGT_files.write("\t\t"+"Hit_PMC_1"+"\t"+str(Event_number)+"\t"+str(Latency)+"\n")
file.close()
OGT_files.close()
Вывод:
Subj Run Event_type Event_number Accuracy Latency
Hit_ODD_1 5.000000
16.462000
Hit_ODD_2 7.000000
18.070000
Hit_ODD_1 9.000000
22.662000
Hit_ODD_2 11.000000
24.230000
False_PMC_1 13.000000
28.318000 ...
Вывод моего кода вставляет ' Латентность «на одну строку ниже, где это должно быть (и под столбцом« Выполнить »вместо столбца« Задержка »). Как я могу настроить код для решения этой проблемы?