У меня есть следующий словарь:
rts = {
"PO1": {
"congruent": {
"rt": [0.647259, 0.720116, 0.562909, 0.538918, 0.633367],
"correct": ["True", "True", "True", "True", "True", "False",]
},
"incongruent": {
"rt": [0.647259, 0.720116, 0.562909, 0.538918, 0.633367],
"correct": ["True", "True", "True", "True", "True", "False",]
}
},
"PO2": {
"congruent": {
"rt": [0.647259, 0.720116, 0.562909, 0.538918, 0.633367],
"correct": ["True", "True", "True", "True", "True", "False",]
},
"incongruent": {
"rt": [0.647259, 0.720116, 0.562909, 0.538918, 0.633367],
"correct": ["True", "True", "True", "True", "True", "False",]
}
}
}
Вот код, который у меня есть до сих пор:
import csv
from pathlib import Path
import json
import numpy as np
from numpy import array
def main():
rts = {}
statsDict = {}
data = Path('C:/Users/oli.warriner/Desktop/data(2)/data')
for csvfile in data.glob('*.csv'):
key = csvfile.stem
with csvfile.open() as f:
csv_reader = csv.reader(f)
# Skip the header
_ = next(csv_reader)
rts[key] = {
'congruent': {
'rt': [],
'correct': []
},
'incongruent': {
'rt': [],
'correct': []
},
}
for tn, ctext, cname, condition, response, rt, correct in csv_reader:
rts[key][condition]['rt'].append(float(rt))
rts[key][condition]['correct'].append(correct)
for k in rts:
key = k
statsDict[key] = {
'congruent': {
'mean': [],
'stddev': [],
'correct': []
},
'incongruent': {
'mean': [],
'stddev': [],
'correct': []
},
}
for n in rts[k]:
for i in rts[key][n]
array([rts[k] for k in rts]).mean()
print(array)
if __name__ == "__main__":
main()
Я читаю каталог csv-файлов, чтобы произвести «rts» словарь, который вы видите выше (его гораздо больше, чем я только что сократил здесь).
Теперь я хочу использовать словарь "rts" для заполнения "statsDict".
Мне нужно l oop через словарь "rts" и вычислить среднее и стандартное отклонение от значений "rt" в значениях "congruent" и "incongruent" для каждого ключа отдельно.
Затем мне нужно использовать логические значения в «правильном» для каждого ключа, чтобы вычислить процент истинного в каждом из них.
Мне удается l oop через первую пару слоев на словарь, однако, теперь я немного растерялся, я не уверен, как go перейти на следующий уровень вниз и начать делать необходимые мне расчеты статистики.
Надеюсь, людям это понятно. Дайте знать, если у вас появятся вопросы. Заранее спасибо!