Spaces:
Sleeping
Sleeping
shyuli
commited on
Commit
·
7ea23dc
1
Parent(s):
ed93956
version v0.1
Browse files- src/populate.py +25 -5
src/populate.py
CHANGED
|
@@ -14,15 +14,35 @@ def get_leaderboard_df(results_path: str, requests_path: str, cols: list, benchm
|
|
| 14 |
all_data_json = [v.to_dict() for v in raw_data]
|
| 15 |
|
| 16 |
df = pd.DataFrame.from_records(all_data_json)
|
| 17 |
-
df = df.sort_values(by=[AutoEvalColumn.average.name], ascending=False)
|
| 18 |
|
| 19 |
-
#
|
| 20 |
-
df
|
|
|
|
| 21 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 22 |
df = df[cols].round(decimals=2)
|
| 23 |
|
| 24 |
-
#
|
| 25 |
-
|
|
|
|
|
|
|
| 26 |
return df
|
| 27 |
|
| 28 |
|
|
|
|
| 14 |
all_data_json = [v.to_dict() for v in raw_data]
|
| 15 |
|
| 16 |
df = pd.DataFrame.from_records(all_data_json)
|
|
|
|
| 17 |
|
| 18 |
+
# If empty (e.g., first run on HF Spaces), return empty frame with expected columns
|
| 19 |
+
if df.empty:
|
| 20 |
+
return pd.DataFrame(columns=cols)
|
| 21 |
|
| 22 |
+
# Ensure Average exists; compute from available benchmark columns if missing
|
| 23 |
+
average_col = AutoEvalColumn.average.name
|
| 24 |
+
present_bench_cols = [c for c in benchmark_cols if c in df.columns]
|
| 25 |
+
if average_col not in df.columns and len(present_bench_cols) > 0:
|
| 26 |
+
df[average_col] = df[present_bench_cols].mean(axis=1)
|
| 27 |
+
|
| 28 |
+
# Sort if Average present
|
| 29 |
+
if average_col in df.columns:
|
| 30 |
+
df = df.sort_values(by=[average_col], ascending=False)
|
| 31 |
+
|
| 32 |
+
# Add rank if Average present
|
| 33 |
+
if average_col in df.columns:
|
| 34 |
+
df[AutoEvalColumn.rank.name] = range(1, len(df) + 1)
|
| 35 |
+
|
| 36 |
+
# Add any missing columns as NA and reorder
|
| 37 |
+
for c in cols:
|
| 38 |
+
if c not in df.columns:
|
| 39 |
+
df[c] = pd.NA
|
| 40 |
df = df[cols].round(decimals=2)
|
| 41 |
|
| 42 |
+
# Filter NaNs only on existing benchmark columns
|
| 43 |
+
safe_benchmark_cols = [c for c in benchmark_cols if c in df.columns]
|
| 44 |
+
if len(safe_benchmark_cols) > 0:
|
| 45 |
+
df = df[has_no_nan_values(df, safe_benchmark_cols)]
|
| 46 |
return df
|
| 47 |
|
| 48 |
|