- Timestamp:
- 2020-10-05T12:49:05+13:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/model-sites-dev/mars/collect/deam/MERGE-CSV-FEATURES-AND-AV-FILES.py
r34440 r34441 4 4 from __future__ import division 5 5 from __future__ import print_function 6 from __future__ import with_statement 7 6 8 7 9 import csv … … 9 11 from collections import OrderedDict 10 12 11 def csv_ features_to_dict(csv_filename):13 def csv_load_features_to_dict(csv_filename): 12 14 csv_features_file = open(csv_filename,"r") 13 csv_features_reader = csv.reader(csv_features_file, delimiter=',', quotechar='"')14 15 15 csv_features_dict = {} 16 try: 17 csv_features_reader = csv.reader(csv_features_file, delimiter=',', quotechar='"') 16 18 17 line_count = 0 18 header_row = None 19 csv_features_dict = {} 20 21 line_count = 0 22 header_row = None 23 24 for row in csv_features_reader: 25 if line_count == 0: 26 row.pop(0) 27 header_row = row 28 else: 29 full_file_id = row[0] 30 31 pat = re.compile('^import/(\\d+).json$') 32 mat = pat.match(full_file_id) 33 song_id = int(mat.group(1)) 19 34 20 for row in csv_features_reader: 21 if line_count == 0: 22 row.pop(0) 23 header_row = row 24 else: 25 full_file_id = row[0] 35 row.pop(0) 36 row_ordered_dict = OrderedDict() 37 38 for i in range(0, len(header_row)): 39 field = header_row[i]; 40 value = row[i]; 41 42 row_ordered_dict[field] = value 43 44 csv_features_dict[song_id] = row_ordered_dict 26 45 27 pat = re.compile('^import/(\\d+).json$') 28 mat = pat.match(full_file_id) 29 song_id = int(mat.group(1)) 46 line_count += 1 30 47 31 row.pop(0) 32 row_ordered_dict = OrderedDict() 48 finally: 49 csv_features_file.close() 50 return csv_features_dict 33 51 34 for i in range(0, len(header_row)): 35 field = header_row[i]; 36 value = row[i]; 52 def csv_load_groundtruth_to_dict(csv_filename): 37 53 38 row_ordered_dict[field] = value 54 # Written in the 'with' style that automatically closes the open() 55 with open(csv_filename,"r") as csv_file: 56 csv_reader = csv.reader(csv_file, delimiter=',') 57 58 csv_gt_dict = {} 59 60 line_count = 0 61 header_row = None 62 63 for row in csv_reader: 64 if line_count == 0: 65 row.pop(0) 66 header_row = row 67 else: 68 song_id = int(row[0]) 69 row.pop(0) 70 71 row_ordered_dict = OrderedDict() 72 73 for i in range(0, len(row)): 74 field = header_row[i]; 75 value = row[i]; 76 77 row_ordered_dict[field] = value 39 78 40 csv_features_dict[song_id] = row_ordered_dict79 csv_gt_dict[song_id] = row_ordered_dict 41 80 42 line_count += 1 43 44 return csv_features_dict 45 46 def csv_groundtruth_to_dict(csv_filename): 47 48 csv_file = open(csv_filename) 49 csv_reader = csv.reader(csv_file, delimiter=',') 50 51 csv_gt_dict = {} 52 53 line_count = 0 54 header_row = None 55 56 for row in csv_reader: 57 if line_count == 0: 58 row.pop(0) 59 header_row = row 60 else: 61 song_id = int(row[0]) 62 row.pop(0) 63 64 row_ordered_dict = OrderedDict() 65 66 for i in range(0, len(row)): 67 field = header_row[i]; 68 value = row[i]; 69 70 row_ordered_dict[field] = value 71 72 csv_gt_dict[song_id] = row_ordered_dict 73 74 line_count += 1 81 line_count += 1 75 82 76 83 return csv_gt_dict … … 98 105 99 106 100 def ordered_dict_features_to_ array(songkey_combined_dict):107 def ordered_dict_features_to_list(songkey_combined_dict): 101 108 102 features_ array= []109 features_list = [] 103 110 104 111 header = [] … … 111 118 header.append(feature_key) 112 119 113 features_ array.append(header)120 features_list.append(header) 114 121 115 122 # Now move on to processing each of the song_key_id entries … … 127 134 128 135 129 features_ array.append(row)136 features_list.append(row) 130 137 131 return features_ array138 return features_list 132 139 133 140 134 def csv_save_combined_features(csv_filename,combined_features_ array):141 def csv_save_combined_features(csv_filename,combined_features_list): 135 142 csv_features_file = open(csv_filename,"w",newline="") 136 143 csv_features_writer = csv.writer(csv_features_file, delimiter=',', quotechar='"') 137 144 138 csv_features_writer.writerows(combined_features_ array);145 csv_features_writer.writerows(combined_features_list); 139 146 140 147 … … 157 164 158 165 159 csv_features_dict = csv_ features_to_dict(csv_input_filename)166 csv_features_dict = csv_load_features_to_dict(csv_input_filename) 160 167 161 arousal_groundtruth_dict = csv_ groundtruth_to_dict(arousal_csv_filename)162 valence_groundtruth_dict = csv_ groundtruth_to_dict(valence_csv_filename)168 arousal_groundtruth_dict = csv_load_groundtruth_to_dict(arousal_csv_filename) 169 valence_groundtruth_dict = csv_load_groundtruth_to_dict(valence_csv_filename) 163 170 164 171 print_songkey_dict("Arousal Ground-truth",arousal_groundtruth_dict) … … 170 177 print_songkey_dict("Essentia Features",csv_features_dict,1) 171 178 172 combined_features_ array = ordered_dict_features_to_array(csv_features_dict)179 combined_features_list = ordered_dict_features_to_list(csv_features_dict) 173 180 174 181 … … 177 184 print("* Saving combined CSV data to: " + csv_output_filename) 178 185 print("****") 179 csv_save_combined_features(csv_output_filename,combined_features_ array)186 csv_save_combined_features(csv_output_filename,combined_features_list) 180 187
Note:
See TracChangeset
for help on using the changeset viewer.