Update app.py
Browse files
app.py
CHANGED
@@ -177,7 +177,7 @@ def load_leaderboard():
|
|
177 |
df = pd.read_csv(LEADERBOARD_FILE)
|
178 |
|
179 |
# Fill empty Team Name
|
180 |
-
df['Team Name'] = df['Team Name'].fillna('
|
181 |
|
182 |
# Fill empty Timestamp
|
183 |
df['Timestamp'] = df['Timestamp'].fillna(datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
|
@@ -213,6 +213,19 @@ def load_leaderboard():
|
|
213 |
|
214 |
return df
|
215 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
216 |
def load_leaderboard_pro():
|
217 |
if not os.path.exists(LEADERBOARD_FILE_pro) or os.stat(LEADERBOARD_FILE_pro).st_size == 0:
|
218 |
return pd.DataFrame({
|
@@ -222,9 +235,48 @@ def load_leaderboard_pro():
|
|
222 |
"Total Questions": [],
|
223 |
"Timestamp": [],
|
224 |
"Team Name": [],
|
225 |
-
|
226 |
})
|
227 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
228 |
|
229 |
|
230 |
|
|
|
177 |
df = pd.read_csv(LEADERBOARD_FILE)
|
178 |
|
179 |
# Fill empty Team Name
|
180 |
+
df['Team Name'] = df['Team Name'].fillna(df['Model Name'])
|
181 |
|
182 |
# Fill empty Timestamp
|
183 |
df['Timestamp'] = df['Timestamp'].fillna(datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
|
|
|
213 |
|
214 |
return df
|
215 |
|
216 |
+
# def load_leaderboard_pro():
|
217 |
+
# if not os.path.exists(LEADERBOARD_FILE_pro) or os.stat(LEADERBOARD_FILE_pro).st_size == 0:
|
218 |
+
# return pd.DataFrame({
|
219 |
+
# "Model Name": [],
|
220 |
+
# "Overall Accuracy": [],
|
221 |
+
# "Correct Predictions": [],
|
222 |
+
# "Total Questions": [],
|
223 |
+
# "Timestamp": [],
|
224 |
+
# "Team Name": [],
|
225 |
+
|
226 |
+
# })
|
227 |
+
# return pd.read_csv(LEADERBOARD_FILE_pro)
|
228 |
+
|
229 |
def load_leaderboard_pro():
|
230 |
if not os.path.exists(LEADERBOARD_FILE_pro) or os.stat(LEADERBOARD_FILE_pro).st_size == 0:
|
231 |
return pd.DataFrame({
|
|
|
235 |
"Total Questions": [],
|
236 |
"Timestamp": [],
|
237 |
"Team Name": [],
|
|
|
238 |
})
|
239 |
+
|
240 |
+
# Read the CSV file
|
241 |
+
df = pd.read_csv(LEADERBOARD_FILE_pro)
|
242 |
+
|
243 |
+
# Fill empty Team Name
|
244 |
+
df['Team Name'] = df['Team Name'].fillna(df['Model Name'])
|
245 |
+
|
246 |
+
# Fill empty Timestamp
|
247 |
+
df['Timestamp'] = df['Timestamp'].fillna(datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
|
248 |
+
|
249 |
+
# If Timestamp is an empty string, replace with current timestamp
|
250 |
+
df.loc[df['Timestamp'] == '', 'Timestamp'] = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
251 |
+
|
252 |
+
# Fill Correct Predictions based on Accuracy and Total Questions if possible
|
253 |
+
# Assuming Total Questions is typically 16186 and Accuracy is a percentage
|
254 |
+
df['Correct Predictions'] = df.apply(
|
255 |
+
lambda row: round(9497 * (row['Overall Accuracy'] / 100))
|
256 |
+
if pd.isna(row['Correct Predictions']) or row['Correct Predictions'] == ''
|
257 |
+
else row['Correct Predictions'],
|
258 |
+
axis=1
|
259 |
+
)
|
260 |
+
|
261 |
+
# Remove duplicate entries, keeping the last occurrence
|
262 |
+
df = df.drop_duplicates(subset='Model Name', keep='last')
|
263 |
+
|
264 |
+
# Ensure all expected columns are present
|
265 |
+
expected_columns = [
|
266 |
+
"Model Name",
|
267 |
+
"Overall Accuracy",
|
268 |
+
"Correct Predictions",
|
269 |
+
"Total Questions",
|
270 |
+
"Timestamp",
|
271 |
+
"Team Name"
|
272 |
+
]
|
273 |
+
|
274 |
+
# Reorder columns and save
|
275 |
+
df = df[expected_columns]
|
276 |
+
df.to_csv(LEADERBOARD_FILE_pro, index=False)
|
277 |
+
|
278 |
+
return df
|
279 |
+
|
280 |
|
281 |
|
282 |
|