-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathProbabilityextraction.py
More file actions
96 lines (86 loc) · 3.16 KB
/
Copy pathProbabilityextraction.py
File metadata and controls
96 lines (86 loc) · 3.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# -*- coding: utf-8 -*-
"""
Probability Discounting Data Extraction
Created on Fri Apr 3 10:04:39 2020
@author: eacru
"""
#%%
import pandas as pd
import numpy
import datetime
import os
import csv
#%%
def GetSubjectName(file):
subjectID = file.split('_')[0]
return(subjectID)
#%%
def GetDate(subdir):
date = subdir.split('\\')[1]
date_formatted = datetime.datetime.strptime(date, '%m%d%Y').strftime('%m-%d-%Y')
return(date_formatted)
#%%
def GetDateAboxes(subdir):
date = subdir.split('\\')[1]
date_formatted = datetime.datetime.strptime(date[:8], '%m%d%Y').strftime('%m-%d-%Y')
return(date_formatted)
#%%
# separate by row
def FilterRows(listline):
# return boolean
if len(listline) == 12 and listline[0] != 'Block':
return True
else:
return False
#%%
dataset = pd.DataFrame(columns=d);
dataset.columns = d
i=0
for subdir, dirs, files in os.walk(rootdir):
for file in files:
if "DataByBlock" in file:
subjectID = GetSubjectName(file)
if "Abox" in subdir:
date=GetDateAboxes(subdir)
else:
date = GetDate(subdir)
datafile = open(f'{subdir}/{files[1]}')
data= csv.reader(datafile, delimiter = '\t')
for row in data:
print(row)
# if FilterRows(row) == True:
# dataset.loc[i] = [subjectID, date, row[0], row[1], row[2],row[3],row[4]]
#i=i+1
#dataset.to_csv(f'{rootdir}/{experiment}_compiled.csv')
#%%
#index through multiple files in a directory
import os
import csv
def CompileProbabilityExperimentData(rootdir, experiment):
d = ['SubjectID', 'Date','Block' , 'Risky Lever', 'Right Choices', 'Left Choices', 'Initial HE Latency', 'Pellet Retrieval Latency (rt)', 'Pellet Retrieval Latency (lt)', 'rt Choice Latency', 'lt Choice Latency', 'rt Forced Latency', 'lt Forced Latency']
dataset = pd.DataFrame(columns=d);
dataset.columns = d
i=0
for subdir, dirs, files in os.walk(rootdir):
for file in files:
if "DataByBlock" in file:
subjectID = GetSubjectName(file)
if "Abox" in subdir:
date=GetDateAboxes(subdir)
else:
date = GetDate(subdir)
datafile = open(f'{subdir}/{files[1]}')
data= csv.reader(datafile, delimiter = '\t')
for row in data:
print(FilterRows(row))
if FilterRows(row) == True:
dataset.loc[i] = [subjectID, date, row[0], row[1], row[2],row[3],row[4], row[5], row[6], row[7], row[8], row[9], row[10]]
i=i+1
dataset.to_csv(f'{rootdir}/{experiment}_compiled.csv')
# for line in datafile:
#if datalist != '\n':
# datalist = line.split('\t')
# print(datalist)
#%%
rootdir = 'C:/Users/eacru/OneDrive/Documents/Ferguson lab data/Probability discounting/OFCITPT_dual_prob'
CompileProbabilityExperimentData(rootdir,'OFC ITPT_dual_prob')