James McCool commited on
Commit
746f258
·
1 Parent(s): b9ea55a

Refactor distribute_preset function to improve filtering logic for 'Finish_percentile' by handling edge cases for the first and last finishing ranges, ensuring accurate portfolio selection and maintaining sorting by 'median' in descending order.

Browse files
Files changed (1) hide show
  1. global_func/distribute_preset.py +7 -1
global_func/distribute_preset.py CHANGED
@@ -8,7 +8,13 @@ def distribute_preset(portfolio: pd.DataFrame, lineup_target: int, exclude_cols:
8
  for finishing_range in range(1, 20):
9
  rows_to_drop = []
10
  working_portfolio = portfolio.copy()
11
- working_portfolio = working_portfolio[(working_portfolio['Finish_percentile'] <= (finishing_range / 100)) & (working_portfolio['Finish_percentile'] >= ((finishing_range - 1) / 100))].sort_values(by='median', ascending = False)
 
 
 
 
 
 
12
  working_portfolio = working_portfolio.reset_index(drop=True)
13
  curr_own_type_max = working_portfolio.loc[0, 'Weighted Own'] + (slack_var / 20 * working_portfolio.loc[0, 'Weighted Own'])
14
 
 
8
  for finishing_range in range(1, 20):
9
  rows_to_drop = []
10
  working_portfolio = portfolio.copy()
11
+ if finishing_range == 1:
12
+ working_portfolio = working_portfolio[working_portfolio['Finish_percentile'] <= (finishing_range / 100)]
13
+ elif finishing_range == 20:
14
+ working_portfolio = working_portfolio[working_portfolio['Finish_percentile'] >= ((finishing_range - 1) / 100)]
15
+ else:
16
+ working_portfolio = working_portfolio[(working_portfolio['Finish_percentile'] <= (finishing_range / 100)) & (working_portfolio['Finish_percentile'] >= ((finishing_range - 1) / 100))]
17
+ working_portfolio = working_portfolio.sort_values(by='median', ascending = False)
18
  working_portfolio = working_portfolio.reset_index(drop=True)
19
  curr_own_type_max = working_portfolio.loc[0, 'Weighted Own'] + (slack_var / 20 * working_portfolio.loc[0, 'Weighted Own'])
20