26 lines
797 B
Python
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
|