def mean_points(self, **kwargs): """ Return the mean score """ if not self._points: self.get_points() return MathUtils.mean(self._points)
def get_context_data(self, **kwargs): context = super(PlayerDetail, self).get_context_data(**kwargs) player = context['object'] stat_list = player.stats.all() stat_keys = filter(lambda x: x not in ['50', '51', '52', '53', '54', '55', '56', '57'], stat_list[0].stat_data.keys()) columns = filter(lambda x: x[0] in stat_keys, STATS.items()) stat_headers = [ stat_item[1][0] for stat_item in columns ] stat_headers.insert(0, 'Week #') stat_headers.append('Points') context['stat_headers'] = stat_headers context['stat_list'] = [] column_lists = { key: [] for key, value in columns } for stat in stat_list: if int(player.bye_week) == stat.week_num: continue total_points = stat.total_points() stat_week = [] stat_week.append(stat.week_num) for key, value in columns: stat_week.append(stat.stat_data[key]) column_lists[key].append(stat.stat_data[key]) stat_week.append(total_points) context['stat_list'].append(stat_week) avg_stats = ['Avg'] for key, value in columns: avg_str = "%.1f ± %.1f" % ( MathUtils.mean(column_lists[key]), MathUtils.std(column_lists[key]), ) avg_stats.append(avg_str) avg_stats.append(player.mean_points()) context['stat_list'].append(avg_stats) points = player.get_points() context['stat_rows'] = [ ("Total Points", player._season_points()), ("Geometric Mean", player.gmean_points()), ("Arithmetic Mean", player.mean_points()), ("Std Dev", player.std_dev_points()), ("Median", player.median_points()), ("Floor", player.floor_points()), ("Ceiling", player.ceiling_points()), ("Games Played", player.games_played()), ("Risk Factor", '%.2f%%' % player.risk_factor()), ] context['page_title'] = '%s %s Detail' % (player.first_name, player.last_name) return context