-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconvert_csv_to_anova_wide.py
More file actions
49 lines (38 loc) · 1.34 KB
/
convert_csv_to_anova_wide.py
File metadata and controls
49 lines (38 loc) · 1.34 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
import sys
import optparse
import os
from utilities import file_utility
_RESULTS_DIR = "output"
_PARTICIPANT_ID_COLUMN = 'Participant'
_SESSION_ID_COLUMN = 'Style'
_PARTICIPANTS_RATINGS_FILE = 'user_data/participants_ratings.csv'
_RATINGS_MEASURES = [
'DifficultToUnderstand',
'Confusing',
'EasyToRemember',
'AbsorbedInLearning',
'Enjoyable',
'FreeRecall-Immediate',
'FreeRecall-Delayed'
]
_PARTICIPANTS_RESULT_SUMMARY_FILE = 'output/participants_marks_summary.csv'
_RESULT_MEASURES = [
'Word-Recall',
'Seen-Sentence-Recall',
'Unseen-Sentence-Recall',
]
_FILE_MEASURES = {
_PARTICIPANTS_RATINGS_FILE: _RATINGS_MEASURES,
_PARTICIPANTS_RESULT_SUMMARY_FILE: _RESULT_MEASURES
}
def csv_to_anova(file_name, index_column, group_by_column, interested_data_column):
df = file_utility.read_csv(file_name)
df_wide = df.pivot(index=index_column, columns=group_by_column, values=interested_data_column)
file_path = os.path.splitext(file_name)
file_name_wide_format = f'{_RESULTS_DIR}/{interested_data_column}{file_path[1]}'
df_wide.to_csv(file_name_wide_format)
print(f'New file: [{file_name_wide_format}]')
if __name__ == "__main__":
for file, measures in _FILE_MEASURES.items():
for measure in measures:
csv_to_anova(file, _PARTICIPANT_ID_COLUMN, _SESSION_ID_COLUMN, measure)