huckiyang commited on
Commit
af9482d
·
1 Parent(s): c1ee788

[data] fixing model

Browse files
Files changed (1) hide show
  1. app.py +30 -18
app.py CHANGED
@@ -16,11 +16,22 @@ from src.display.css_html_js import custom_css
16
  ### Space initialisation
17
 
18
 
19
- # Load with multi-header and set the first column ('Model') as index
20
- LEADERBOARD_DF = pd.read_csv("leaderboard_data.csv", header=[0, 1], index_col=0)
21
- LEADERBOARD_DF.index.name = "Model" # Explicitly name the index
22
- # No need to astype(str) globally here, Gradio DataFrame handles it well.
23
- # If specific styling or type issues arise, it can be done selectively.
 
 
 
 
 
 
 
 
 
 
 
24
 
25
  BIAS_DF = pd.read_csv("bias_evaluation_data.csv")
26
  BIAS_DF = BIAS_DF.astype(str).fillna("-")
@@ -37,15 +48,14 @@ with demo:
37
  # Add the image display
38
  gr.Image("table_snapshot.png", label="Original Table Snapshot", interactive=False)
39
 
40
- # Display the table with multi-level header
41
- table_output = gr.DataFrame(value=LEADERBOARD_DF, label="Leaderboard Results", interactive=True, wrap=True)
42
 
43
  gr.Markdown("---")
44
  gr.Markdown("### Display Options")
45
 
46
- # Removed column_selector
47
-
48
- model_filter_choices = LEADERBOARD_DF.index.tolist()
49
  model_selector = gr.CheckboxGroup(
50
  choices=model_filter_choices,
51
  value=model_filter_choices,
@@ -53,19 +63,21 @@ with demo:
53
  )
54
 
55
  def update_table(selected_models_from_filter):
 
56
  if not selected_models_from_filter:
57
- # Return an empty DataFrame with the same index and columns
58
- filtered_df = LEADERBOARD_DF.iloc[0:0]
59
  else:
60
- # Filter out any selected models not actually in the index to prevent errors
61
- valid_selected_models = [model for model in selected_models_from_filter if model in LEADERBOARD_DF.index]
62
  if not valid_selected_models:
63
- filtered_df = LEADERBOARD_DF.iloc[0:0]
64
  else:
65
- filtered_df = LEADERBOARD_DF.loc[valid_selected_models]
66
- return gr.DataFrame.update(value=filtered_df)
 
 
 
67
 
68
- # Event listener (only model_selector now)
69
  model_selector.change(
70
  fn=update_table,
71
  inputs=[model_selector],
 
16
  ### Space initialisation
17
 
18
 
19
+ # Load leaderboard data with multi-header, do not set index initially
20
+ LEADERBOARD_DF_ORIGINAL = pd.read_csv("leaderboard_data.csv", header=[0, 1])
21
+
22
+ # Function to prepare DataFrame for display (format headers, ensure Model column)
23
+ def format_leaderboard_df_for_display(df_orig):
24
+ df_display = df_orig.copy()
25
+ new_columns = []
26
+ for col_tuple in df_display.columns:
27
+ if col_tuple == ('Model', 'Model'):
28
+ new_columns.append('Model')
29
+ else:
30
+ new_columns.append(f"{col_tuple[0]}\n{col_tuple[1]}")
31
+ df_display.columns = new_columns
32
+ return df_display
33
+
34
+ LEADERBOARD_DF_DISPLAY_INIT = format_leaderboard_df_for_display(LEADERBOARD_DF_ORIGINAL)
35
 
36
  BIAS_DF = pd.read_csv("bias_evaluation_data.csv")
37
  BIAS_DF = BIAS_DF.astype(str).fillna("-")
 
48
  # Add the image display
49
  gr.Image("table_snapshot.png", label="Original Table Snapshot", interactive=False)
50
 
51
+ # Initialize with the display-formatted DataFrame
52
+ table_output = gr.DataFrame(value=LEADERBOARD_DF_DISPLAY_INIT, label="Leaderboard Results", interactive=True, wrap=True)
53
 
54
  gr.Markdown("---")
55
  gr.Markdown("### Display Options")
56
 
57
+ # Filter choices from the original DataFrame's ('Model', 'Model') column
58
+ model_filter_choices = LEADERBOARD_DF_ORIGINAL[('Model', 'Model')].unique().tolist()
 
59
  model_selector = gr.CheckboxGroup(
60
  choices=model_filter_choices,
61
  value=model_filter_choices,
 
63
  )
64
 
65
  def update_table(selected_models_from_filter):
66
+ filtered_df_orig = LEADERBOARD_DF_ORIGINAL.copy()
67
  if not selected_models_from_filter:
68
+ # If no models selected, show an empty table structure (based on original for cols)
69
+ filtered_df_orig = LEADERBOARD_DF_ORIGINAL[LEADERBOARD_DF_ORIGINAL[('Model', 'Model')].isin([])] # Empty but keeps structure
70
  else:
71
+ valid_selected_models = [model for model in selected_models_from_filter if model in model_filter_choices]
 
72
  if not valid_selected_models:
73
+ filtered_df_orig = LEADERBOARD_DF_ORIGINAL[LEADERBOARD_DF_ORIGINAL[('Model', 'Model')].isin([])]
74
  else:
75
+ filtered_df_orig = LEADERBOARD_DF_ORIGINAL[LEADERBOARD_DF_ORIGINAL[('Model', 'Model')].isin(valid_selected_models)]
76
+
77
+ # Format the filtered DataFrame for display
78
+ df_to_display = format_leaderboard_df_for_display(filtered_df_orig)
79
+ return gr.DataFrame.update(value=df_to_display)
80
 
 
81
  model_selector.change(
82
  fn=update_table,
83
  inputs=[model_selector],