Seewhatson commited on
Commit
9343e9b
·
1 Parent(s): 8de0ef6

Add total points columns and improve MCP tool names

Browse files

- Add Total Pts and Last GW Pts to top predictions, value picks, and my team views
- Rename get_differentials to get_value_picks with clearer description
- Rename get_manager_team_predictions to get_my_team

Files changed (1) hide show
  1. app.py +11 -11
app.py CHANGED
@@ -341,7 +341,7 @@ def load_and_process_data():
341
  )
342
  manager_players_df = pd.merge(
343
  manager_players_df,
344
- final_predictions_df[['element', 'XGB Pred', 'difficulty', 'Next Opponent']],
345
  on='element', how='left'
346
  )
347
  else:
@@ -379,7 +379,7 @@ def get_top_predictions(top_n: int = 10, position: Optional[str] = None) -> pd.D
379
  df = df.sort_values('XGB Pred', ascending=False).head(top_n)
380
 
381
  cols = ['player_name', 'team_name', 'position', 'value', 'XGB Pred',
382
- 'Pts Mean (5GW)', 'Trend', 'difficulty']
383
 
384
  return df[cols]
385
 
@@ -443,9 +443,9 @@ def get_team_stats(team_name: Optional[str] = None) -> pd.DataFrame:
443
  return df[cols]
444
 
445
 
446
- def get_differentials(max_price: float = 10.0, min_predicted: float = 4.0, top_n: int = 10) -> pd.DataFrame:
447
  """
448
- Find best differential players (high predicted points at low price).
449
 
450
  Args:
451
  max_price (float): Maximum player price in millions (default: 10.0)
@@ -453,7 +453,7 @@ def get_differentials(max_price: float = 10.0, min_predicted: float = 4.0, top_n
453
  top_n (int): Number of results to return (default: 10)
454
 
455
  Returns:
456
- pd.DataFrame: Best differential players
457
  """
458
  df = final_predictions_df.copy()
459
 
@@ -461,17 +461,17 @@ def get_differentials(max_price: float = 10.0, min_predicted: float = 4.0, top_n
461
  df = df.sort_values('XGB Pred', ascending=False).head(top_n)
462
 
463
  cols = ['player_name', 'team_name', 'position', 'value', 'XGB Pred',
464
- 'Pts Mean (5GW)', 'Trend', 'difficulty']
465
 
466
  return df[cols]
467
 
468
 
469
- def get_manager_team_predictions() -> pd.DataFrame:
470
  """
471
- Get your current FPL manager team with predictions for next gameweek.
472
 
473
  Returns:
474
- pd.DataFrame: Manager team with predictions
475
  """
476
  return manager_players_df
477
 
@@ -535,7 +535,7 @@ with gr.Blocks(title=f"FPL GW {NEXT_GW} Predictor (MCP)") as demo:
535
  diff_output = gr.Dataframe()
536
 
537
  diff_btn.click(
538
- fn=get_differentials,
539
  inputs=[max_price, min_pred, diff_top_n],
540
  outputs=diff_output
541
  )
@@ -544,7 +544,7 @@ with gr.Blocks(title=f"FPL GW {NEXT_GW} Predictor (MCP)") as demo:
544
  mgr_btn = gr.Button("Load My Team")
545
  mgr_output = gr.Dataframe()
546
 
547
- mgr_btn.click(fn=get_manager_team_predictions, outputs=mgr_output)
548
 
549
 
550
  if __name__ == "__main__":
 
341
  )
342
  manager_players_df = pd.merge(
343
  manager_players_df,
344
+ final_predictions_df[['element', 'XGB Pred', 'Total Pts', 'Last GW Pts', 'difficulty', 'Next Opponent']],
345
  on='element', how='left'
346
  )
347
  else:
 
379
  df = df.sort_values('XGB Pred', ascending=False).head(top_n)
380
 
381
  cols = ['player_name', 'team_name', 'position', 'value', 'XGB Pred',
382
+ 'Total Pts', 'Last GW Pts', 'Pts Mean (5GW)', 'Trend', 'difficulty']
383
 
384
  return df[cols]
385
 
 
443
  return df[cols]
444
 
445
 
446
+ def get_value_picks(max_price: float = 10.0, min_predicted: float = 4.0, top_n: int = 10) -> pd.DataFrame:
447
  """
448
+ Find high-value players (good predicted points relative to price).
449
 
450
  Args:
451
  max_price (float): Maximum player price in millions (default: 10.0)
 
453
  top_n (int): Number of results to return (default: 10)
454
 
455
  Returns:
456
+ pd.DataFrame: Best value players sorted by predicted points
457
  """
458
  df = final_predictions_df.copy()
459
 
 
461
  df = df.sort_values('XGB Pred', ascending=False).head(top_n)
462
 
463
  cols = ['player_name', 'team_name', 'position', 'value', 'XGB Pred',
464
+ 'Total Pts', 'Last GW Pts', 'Pts Mean (5GW)', 'Trend', 'difficulty']
465
 
466
  return df[cols]
467
 
468
 
469
+ def get_my_team() -> pd.DataFrame:
470
  """
471
+ Get predictions for players in manager ID 8679881's team.
472
 
473
  Returns:
474
+ pd.DataFrame: Team players with predictions for next gameweek
475
  """
476
  return manager_players_df
477
 
 
535
  diff_output = gr.Dataframe()
536
 
537
  diff_btn.click(
538
+ fn=get_value_picks,
539
  inputs=[max_price, min_pred, diff_top_n],
540
  outputs=diff_output
541
  )
 
544
  mgr_btn = gr.Button("Load My Team")
545
  mgr_output = gr.Dataframe()
546
 
547
+ mgr_btn.click(fn=get_my_team, outputs=mgr_output)
548
 
549
 
550
  if __name__ == "__main__":