James McCool
Refactor import statements across multiple files to replace 'fuzzywuzzy' with 'rapidfuzz' for improved performance and consistency in string matching functionality. Additionally, clean up unused imports in app.py and related global functions to enhance code clarity and maintainability.
d9db89f
import pandas as pd | |
def reduce_volatility_preset(portfolio: pd.DataFrame, lineup_target: int, exclude_cols: list, sport: str): | |
excluded_cols = ['salary', 'median', 'Own', 'Finish_percentile', 'Dupes', 'Stack', 'Size', 'Win%', 'Lineup Edge', 'Weighted Own', 'Geomean', 'Diversity'] | |
player_columns = [col for col in portfolio.columns if col not in excluded_cols] | |
for slack_var in range(1, 20): | |
concat_portfolio = pd.DataFrame(columns=portfolio.columns) | |
for team in portfolio['Stack'].unique(): | |
rows_to_drop = [] | |
working_portfolio = portfolio.copy() | |
working_portfolio = working_portfolio[working_portfolio['Stack'] == team].sort_values(by='Weighted Own', ascending = False) | |
working_portfolio = working_portfolio.reset_index(drop=True) | |
curr_own_type_max = working_portfolio.loc[0, 'Diversity'] + (slack_var / 20 * working_portfolio.loc[0, 'Diversity']) | |
for i in range(1, len(working_portfolio)): | |
if working_portfolio.loc[i, 'Diversity'] < curr_own_type_max: | |
rows_to_drop.append(i) | |
else: | |
curr_own_type_max = working_portfolio.loc[i, 'Diversity'] + (slack_var / 20 * working_portfolio.loc[i, 'Diversity']) | |
working_portfolio = working_portfolio.drop(rows_to_drop).reset_index(drop=True) | |
concat_portfolio = pd.concat([concat_portfolio, working_portfolio]) | |
if len(concat_portfolio) >= lineup_target: | |
return concat_portfolio.sort_values(by='Weighted Own', ascending=False).head(lineup_target) | |
return concat_portfolio.sort_values(by='Weighted Own', ascending=False) | |