Files
pub-quiz/src/player_table.py
T
John Gatward 80a66bc44c enhanced
2026-03-19 21:43:34 +00:00

26 lines
797 B
Python

from constants import PLAYER_NAME_COLUMNS, ordinal
def generate_player_table(df):
header = [["Player", "Appearances", "Avg. Relative Percentile", "Spent"]]
player_stats = []
for name in PLAYER_NAME_COLUMNS:
if name in df.columns:
attended = df[df[name] == 1]
n = len(attended)
if n > 0:
avg_rel = attended["Relative Position"].mean()
player_stats.append((name, n, avg_rel))
player_stats.sort(key=lambda x: x[1], reverse=True)
total = sum(n for _, n, _ in player_stats)
body = [
[name, n, ordinal(round(avg_rel * 100)), f{n * 3:.2f}"]
for name, n, avg_rel in player_stats
]
footer = [["Total", total, "—", f{total * 3:.2f}"]]
return header + body + footer