data = { ('', 'teamId'): ['baseline', 'baseline', 'baseline', 'baseline'], ('', 'methods'): ["chatglm3-6b", "baichuan2-13b", "chatglm-pro", "gpt-4o-mini"], ('', 'overall'): [0,0,0,0], ('Dialogue Generation', 'accuracy'): [0.5806, 0.5483, 0.6001, 0.6472], ('Dialogue Generation', "kendall's tau"): [0.3243, 0.1739, 0.3042, 0.4167], ('Dialogue Generation', 'spearman'): [0.3505, 0.1857, 0.3264, 0.4512], ('Text Expansion', "accuracy"): [0.5107, 0.5050, 0.5461, 0.5581], ('Text Expansion', "kendall's tau"): [0.1281, 0.0635, 0.2716, 0.3864], ('Text Expansion', 'spearman'): [0.1352, 0.0667, 0.2867, 0.4157], ('Summary Generation', 'accuracy'): [0.6504, 0.6014, 0.7162, 0.7441], ('Summary Generation', "kendall's tau"): [0.3957, 0.2688, 0.5092, 0.5001], ('Summary Generation', 'spearman'): [0.4188, 0.2817, 0.5403, 0.5405], ('Non-Factoid QA', "accuracy"): [0.5935, 0.5817, 0.7000, 0.7203], ('Non-Factoid QA', "kendall's tau"): [0.2332, 0.2389, 0.4440, 0.4235], ('Non-Factoid QA', 'spearman'): [0.2443, 0.2492, 0.4630, 0.4511] } overall = [0, 0, 0, 0] for d in data: if d != ('', 'teamId') and d != ('', 'methods') and d != ('', 'overall'): for i in range(4): overall[i] += data[d][i] overall = [i / (3*4) for i in overall] data[('', 'overall')] = overall for d in data: if d != ('', 'teamId') and d != ('', 'methods'): for col in range(len(data[d])): data[d][col] = "{:.4f}".format(data[d][col]) print(data)