Aaron Mueller commited on
Commit
3e61985
·
1 Parent(s): 99c6847

fix sorting for CMD

Browse files
Files changed (1) hide show
  1. app.py +26 -14
app.py CHANGED
@@ -454,7 +454,7 @@ def filter_columns_by_substrings(dataframe: pd.DataFrame, selected_task_substrin
454
  return dataframe[filtered_columns]
455
 
456
  def update_leaderboard(dataframe: pd.DataFrame, selected_task_substrings: List[str],
457
- selected_model_substrings: List[str]):
458
  """
459
  Update the leaderboard based on the selected substrings.
460
  """
@@ -476,20 +476,28 @@ def update_leaderboard(dataframe: pd.DataFrame, selected_task_substrings: List[s
476
  return df_transformed
477
 
478
  if show_average:
 
479
  numeric_data = filtered_dataframe.replace("-", np.nan)
480
  means = numeric_data.mean(axis=1, skipna=False)
481
 
 
482
  s_filtered_dataframe = _transform_floats(filtered_dataframe)
483
  s_numeric_data = s_filtered_dataframe.replace("-", np.nan)
484
  s_means = s_numeric_data.mean(axis=1, skipna=False)
485
 
486
  # Set Average and Score columns
487
- # Use isna() to check for NaN values (which occur when any cell in the row was "-")
488
- filtered_dataframe.loc[:, "Average"] = np.where(means.isna(), "-", means.round(2))
489
- filtered_dataframe.loc[:, "Score"] = np.where(s_means.isna(), "-", s_means.round(2))
490
 
491
- # Sort by Average
492
- filtered_dataframe = filtered_dataframe.sort_values(by=["Average"], ascending=False, na_position='last')
 
 
 
 
 
 
493
 
494
  return filtered_dataframe
495
 
@@ -526,15 +534,16 @@ with demo:
526
 
527
  leaderboard, data = init_leaderboard_mib_subgraph(LEADERBOARD_DF_MIB_SUBGRAPH_FPL, "Subgraph")
528
  original_leaderboard = gr.State(value=data)
 
529
  # Update the leaderboard when the user selects/deselects substrings
530
  task_substring_checkbox.change(
531
  fn=update_leaderboard,
532
- inputs=[original_leaderboard, task_substring_checkbox, model_substring_checkbox],
533
  outputs=leaderboard
534
  )
535
  model_substring_checkbox.change(
536
  fn=update_leaderboard,
537
- inputs=[original_leaderboard, task_substring_checkbox, model_substring_checkbox],
538
  outputs=leaderboard
539
  )
540
  print(f"Leaderboard is {leaderboard}")
@@ -559,15 +568,16 @@ with demo:
559
 
560
  leaderboard, data = init_leaderboard_mib_subgraph(LEADERBOARD_DF_MIB_SUBGRAPH_FEQ, "Subgraph")
561
  original_leaderboard = gr.State(value=data)
 
562
  # Update the leaderboard when the user selects/deselects substrings
563
  task_substring_checkbox.change(
564
  fn=update_leaderboard,
565
- inputs=[original_leaderboard, task_substring_checkbox, model_substring_checkbox],
566
  outputs=leaderboard
567
  )
568
  model_substring_checkbox.change(
569
  fn=update_leaderboard,
570
- inputs=[original_leaderboard, task_substring_checkbox, model_substring_checkbox],
571
  outputs=leaderboard
572
  )
573
  print(f"Leaderboard is {leaderboard}")
@@ -597,14 +607,15 @@ with demo:
597
  "Causal Graph"
598
  )
599
  original_leaderboard = gr.State(value=data)
 
600
  task_substring_checkbox.change(
601
  fn=update_leaderboard,
602
- inputs=[original_leaderboard, task_substring_checkbox, model_substring_checkbox],
603
  outputs=leaderboard_aggregated
604
  )
605
  model_substring_checkbox.change(
606
  fn=update_leaderboard,
607
- inputs=[original_leaderboard, task_substring_checkbox, model_substring_checkbox],
608
  outputs=leaderboard_aggregated
609
  )
610
  with gr.TabItem("Averaged View", id=1):
@@ -625,14 +636,15 @@ with demo:
625
  "Causal Graph"
626
  )
627
  original_leaderboard = gr.State(value=data)
 
628
  task_substring_checkbox.change(
629
  fn=update_leaderboard,
630
- inputs=[original_leaderboard, task_substring_checkbox, model_substring_checkbox],
631
  outputs=leaderboard_averaged
632
  )
633
  model_substring_checkbox.change(
634
  fn=update_leaderboard,
635
- inputs=[original_leaderboard, task_substring_checkbox, model_substring_checkbox],
636
  outputs=leaderboard_averaged
637
  )
638
 
 
454
  return dataframe[filtered_columns]
455
 
456
  def update_leaderboard(dataframe: pd.DataFrame, selected_task_substrings: List[str],
457
+ selected_model_substrings: List[str], ascending: bool = False):
458
  """
459
  Update the leaderboard based on the selected substrings.
460
  """
 
476
  return df_transformed
477
 
478
  if show_average:
479
+ # Replace "-" with NaN for calculation, then use skipna=False to get NaN when any value is missing
480
  numeric_data = filtered_dataframe.replace("-", np.nan)
481
  means = numeric_data.mean(axis=1, skipna=False)
482
 
483
+ # Apply the same transformation for computing scores
484
  s_filtered_dataframe = _transform_floats(filtered_dataframe)
485
  s_numeric_data = s_filtered_dataframe.replace("-", np.nan)
486
  s_means = s_numeric_data.mean(axis=1, skipna=False)
487
 
488
  # Set Average and Score columns
489
+ # Keep numeric values as NaN for proper sorting, convert to "-" only for display if needed
490
+ filtered_dataframe.loc[:, "Average"] = means.round(2)
491
+ filtered_dataframe.loc[:, "Score"] = s_means.round(2)
492
 
493
+ # Sort by Average with NaN values at the end
494
+ filtered_dataframe = filtered_dataframe.sort_values(by=["Average"], ascending=ascending, na_position='last')
495
+ print(ascending)
496
+ print(filtered_dataframe)
497
+
498
+ # After sorting, convert NaN back to "-" for display
499
+ filtered_dataframe.loc[:, "Average"] = filtered_dataframe["Average"].fillna("-")
500
+ filtered_dataframe.loc[:, "Score"] = filtered_dataframe["Score"].fillna("-")
501
 
502
  return filtered_dataframe
503
 
 
534
 
535
  leaderboard, data = init_leaderboard_mib_subgraph(LEADERBOARD_DF_MIB_SUBGRAPH_FPL, "Subgraph")
536
  original_leaderboard = gr.State(value=data)
537
+ ascending = gr.State(value=False)
538
  # Update the leaderboard when the user selects/deselects substrings
539
  task_substring_checkbox.change(
540
  fn=update_leaderboard,
541
+ inputs=[original_leaderboard, task_substring_checkbox, model_substring_checkbox, ascending],
542
  outputs=leaderboard
543
  )
544
  model_substring_checkbox.change(
545
  fn=update_leaderboard,
546
+ inputs=[original_leaderboard, task_substring_checkbox, model_substring_checkbox, ascending],
547
  outputs=leaderboard
548
  )
549
  print(f"Leaderboard is {leaderboard}")
 
568
 
569
  leaderboard, data = init_leaderboard_mib_subgraph(LEADERBOARD_DF_MIB_SUBGRAPH_FEQ, "Subgraph")
570
  original_leaderboard = gr.State(value=data)
571
+ ascending = gr.State(value=True)
572
  # Update the leaderboard when the user selects/deselects substrings
573
  task_substring_checkbox.change(
574
  fn=update_leaderboard,
575
+ inputs=[original_leaderboard, task_substring_checkbox, model_substring_checkbox, ascending],
576
  outputs=leaderboard
577
  )
578
  model_substring_checkbox.change(
579
  fn=update_leaderboard,
580
+ inputs=[original_leaderboard, task_substring_checkbox, model_substring_checkbox, ascending],
581
  outputs=leaderboard
582
  )
583
  print(f"Leaderboard is {leaderboard}")
 
607
  "Causal Graph"
608
  )
609
  original_leaderboard = gr.State(value=data)
610
+ ascending = gr.State(value=False)
611
  task_substring_checkbox.change(
612
  fn=update_leaderboard,
613
+ inputs=[original_leaderboard, task_substring_checkbox, model_substring_checkbox, ascending],
614
  outputs=leaderboard_aggregated
615
  )
616
  model_substring_checkbox.change(
617
  fn=update_leaderboard,
618
+ inputs=[original_leaderboard, task_substring_checkbox, model_substring_checkbox, ascending],
619
  outputs=leaderboard_aggregated
620
  )
621
  with gr.TabItem("Averaged View", id=1):
 
636
  "Causal Graph"
637
  )
638
  original_leaderboard = gr.State(value=data)
639
+ ascending = gr.State(value=False)
640
  task_substring_checkbox.change(
641
  fn=update_leaderboard,
642
+ inputs=[original_leaderboard, task_substring_checkbox, model_substring_checkbox, ascending],
643
  outputs=leaderboard_averaged
644
  )
645
  model_substring_checkbox.change(
646
  fn=update_leaderboard,
647
+ inputs=[original_leaderboard, task_substring_checkbox, model_substring_checkbox, ascending],
648
  outputs=leaderboard_averaged
649
  )
650