davidmezzetti commited on
Commit
9147f5f
1 Parent(s): 5998f39

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +13 -9
app.py CHANGED
@@ -6,6 +6,7 @@ Install txtai and streamlit (>= 1.23) to run:
6
  """
7
 
8
  import datetime
 
9
  import os
10
  import random
11
 
@@ -92,18 +93,21 @@ class Stats:
92
 
93
  # Get unique names
94
  names = {}
95
- rows = self.stats[["nameFirst", "nameLast", "playerID"]]
96
- for _, row in rows.iterrows():
97
  # Name key
98
  key = f"{row['nameFirst']} {row['nameLast']}"
99
- key += f" ({row['playerID']})" if key in names and names[key][0] != row["playerID"] else ""
100
 
101
  if key not in names:
102
- # Get count of active seasons for player
103
- count = len(rows[rows["playerID"] == row["playerID"]])
 
 
 
104
 
105
  # Save name key - values pair
106
- names[key] = (row["playerID"], count)
107
 
108
  return names
109
 
@@ -492,9 +496,9 @@ class Application:
492
 
493
  # Sync parameters with session state
494
  if all(x in st.session_state for x in ["category", "name", "year"]):
495
- # Only use session year if name is unchanged
496
- params["year"] = str(st.session_state["year"]) if params["name"] == st.session_state["name"] else None
497
-
498
  # Copy category and name from session state
499
  params["category"] = st.session_state["category"]
500
  params["name"] = st.session_state["name"]
 
6
  """
7
 
8
  import datetime
9
+ import math
10
  import os
11
  import random
12
 
 
93
 
94
  # Get unique names
95
  names = {}
96
+ rows = self.stats.sort_values(by=self.metric(), ascending=False)[["nameFirst", "nameLast", "playerID"]].drop_duplicates().reset_index()
97
+ for x, row in rows.iterrows():
98
  # Name key
99
  key = f"{row['nameFirst']} {row['nameLast']}"
100
+ key += f" ({row['playerID']})" if key in names else ""
101
 
102
  if key not in names:
103
+ # Scale scores of top n players
104
+ exponent = 2 if ((len(rows) - x) / len(rows)) >= 0.95 else 1
105
+
106
+ # score = num seasons ^ exponent
107
+ score = math.pow(len(self.stats[self.stats["playerID"] == row["playerID"]]), exponent)
108
 
109
  # Save name key - values pair
110
+ names[key] = (row["playerID"], score)
111
 
112
  return names
113
 
 
496
 
497
  # Sync parameters with session state
498
  if all(x in st.session_state for x in ["category", "name", "year"]):
499
+ # Copy session year if category and name are unchanged
500
+ params["year"] = str(st.session_state["year"]) if all(params[x] == st.session_state[x] for x in ["category", "name"]) else None
501
+
502
  # Copy category and name from session state
503
  params["category"] = st.session_state["category"]
504
  params["name"] = st.session_state["name"]