У меня есть следующие файлы:
Файлы
Мне нужно иметь возможность создать словарь и заполнить его данными из нескольких файлов CSV
Внутри каждого файла появляется следующее:
Итак, моя проблема в том, что мне нужно собрать все файлы в каталоге l oop через каждую строку построчно и выделите соответствующие данные в словарь, как показано на рисунке.
Вот то, что у меня есть до сих пор - мне удается через каталог * l oop и получить каждое отдельное имя файла, однако Я не уверен, как читать каждую строку построчно, анализируя данные, требуемые как I go, в словарь.
from glob import glob
import os
from os.path import basename
import csv
import numpy as np
def main():
rts = {}
directory = 'C:/Users/oli.warriner/Desktop/data(2)/data/'
files = sorted(glob('C:/Users/oli.warriner/Desktop/data(2)/data/*.csv'))
sfiles = [basename(filepath) for filepath in files]
for f in sfiles:
path = os.path.join(directory, f)
singleFile = csv.DictReader(open(path, 'r'))
for line in singleFile:
if f not in rts:
rts[f] = []
if line['condition'] not in rts[f]:
rts[ line['condition']] = []
rts[ line['condition']].append(float (line['rt']))
for condition in rts.keys():
data = np.array(rts[condition])
m = data.mean()
v = data.var()
if __name__ == "__main__":
main()
Текущий вывод словаря:
{'congruent': [0.647259, 0.720116, 0.562909, 0.538918, 0.633367, 0.668142, 1.820112, 0.798532, 0.470939, ...],
'incongruent': [0.767041, 0.990185, 0.693017, 0.679368, 0.951432, 1.289047, 0.647722, 0.858307, 1.118404, ...]}
Желаемый Вывод:
results = {'PO1':
{'Congruent':
{'rt': {0.4, 0.5, 0.8, 0.5, 0.6}},
{'correct': {TRUE, FALSE, TRUE, TRUE, FALSE}}
},
{'Incongruent':
{'rt': {0.4, 0.5, 0.8, 0.5, 0.6}},
{'correct': {TRUE, FALSE, TRUE, TRUE, FALSE}}
}
},
{'PO2':
{'Congruent':
{'rt': {0.4, 0.5, 0.8, 0.5, 0.6}},
{'correct': {TRUE, FALSE, TRUE, TRUE, FALSE}}
},
{'Incongruent':
{'rt': {0.4, 0.5, 0.8, 0.5, 0.6}},
{'correct': {TRUE, FALSE, TRUE, TRUE, FALSE}}
}
},
{'PO3':
{'Congruent':
{'rt': {0.4, 0.5, 0.8, 0.5, 0.6}},
{'correct': {TRUE, FALSE, TRUE, TRUE, FALSE}}
},
{'Incongruent':
{'rt': {0.4, 0.5, 0.8, 0.5, 0.6}},
{'correct': {TRUE, FALSE, TRUE, TRUE, FALSE}}
}
}
Мне нужно иметь возможность вкладывать значения rt в каждое условие и правильные значения для каждого условия. Это также необходимо разделить по файлам и сохранить в словаре.
Я буду использовать словарь для вычисления среднего значения и времени реакции stddev для каждого из условий. Любая помощь очень ценится. Если я где-то был слишком расплывчат, пожалуйста, не стесняйтесь задавать вопросы