(worksheet)
| 46 | |
| 47 | |
| 48 | def calc_stats(worksheet): |
| 49 | alphas = [['alpha']] |
| 50 | stats = [[worksheet.title + ' rank distance', |
| 51 | worksheet.title + ' value distance', |
| 52 | worksheet.title + ' pair changes', |
| 53 | worksheet.title + ' gini']] |
| 54 | |
| 55 | map1 = None |
| 56 | i = 0 |
| 57 | while True: |
| 58 | a = alpha(worksheet, i) |
| 59 | if a is None: |
| 60 | break |
| 61 | map2 = {} |
| 62 | values = [] |
| 63 | for cell in worksheet[get_column_letter(3 * i + 1)][1:]: |
| 64 | rank = cell.row - 1 |
| 65 | # TODO: epsilon=1e-5 |
| 66 | value = worksheet.cell(row=cell.row, column=cell.col_idx + 1).value |
| 67 | map2[cell.value] = [rank, float(value)] |
| 68 | values.append(float(value)) |
| 69 | if map1 is None: |
| 70 | map1 = map2 |
| 71 | else: |
| 72 | alphas.append([a]) |
| 73 | rank_d = distance.deviation(map1, map2, 0) |
| 74 | value_d = distance.deviation(map1, map2, 1) |
| 75 | pc = distance.pair_changes(map1, map2, 0) |
| 76 | gc = gini(numpy.array(values)) |
| 77 | stats.append([rank_d, value_d, pc, gc]) |
| 78 | map1 = map2 |
| 79 | i += 1 |
| 80 | return alphas, stats |
| 81 | |
| 82 | |
| 83 | def draw_stats(workbook): |
no test coverage detected