Spaces:
Runtime error
Runtime error
import pulp | |
import numpy as np | |
import pandas as pd | |
import random | |
import sys | |
import openpyxl | |
import re | |
import time | |
import streamlit as st | |
import matplotlib | |
from matplotlib.colors import LinearSegmentedColormap | |
from st_aggrid import GridOptionsBuilder, AgGrid, GridUpdateMode, DataReturnMode | |
st.set_page_config(layout="wide") | |
tab1, tab2 = st.tabs(["Projections", "Optimizer"]) | |
Player_data_URL = 'https://sheetdb.io/api/v1/yzxwxt7njic9z?sheet=Ceiling_Tables' | |
Projection_URL = 'https://sheetdb.io/api/v1/5e6ksfq0q1ghr?sheet=DK_Build_Up' | |
Optimizer_URL = 'https://sheetdb.io/api/v1/yzxwxt7njic9z?sheet=DK_NBA_Master' | |
CSV_URL = 'https://sheetdb.io/api/v1/5e6ksfq0q1ghr?sheet=DK_CSV' | |
def convert_df_to_csv(df): | |
# IMPORTANT: Cache the conversion to prevent computation on every rerun | |
return df.to_csv().encode('utf-8') | |
def grab_csv_data(URL): | |
draftkings_data = pd.read_json(URL) | |
draftkings_data.rename(columns={"Name": "Player"}, inplace = True) | |
return draftkings_data | |
def grab_projection_data(URL): | |
projection_data = pd.read_json(Projection_URL) | |
wrongNames = ["Bruce Brown Jr.", | |
"TJ McConnell", | |
"Frank Mason", | |
"Troy Brown", | |
"Damian Lee", | |
"Sviatoslav Mykhailiuk", | |
"CJ Miles", | |
"Brian Bowen", | |
"Jacob Evans", | |
"Wes Iwundu", | |
"Melvin Frazier", | |
"Charlie Brown", | |
"Marko Guduric", | |
"TJ Warren", | |
"T. J. Leaf", | |
"Maurice Harkless", | |
"George Niang", | |
"Jarrell Brantley", | |
"Maximilian Kleber", | |
"Harry Giles III", | |
"D.J. Wilson", | |
"Alen Smailagic", | |
"Willy Hernangomez", | |
"P.J. Washington", | |
"Robert Williams III", | |
"R.J. Barrett", | |
"Jaren Jackson", | |
"Glenn Robinson", | |
"Wendell Carter", | |
"O.G. Anunoby", | |
"PJ Tucker", | |
"Michael Porter", | |
"Lonnie Walker", | |
"Derrick Jones", | |
"Kelly Oubre", | |
"Brad Wanamaker", | |
"Timothe Luwawu-Cabarrot", | |
"Otto Porter", | |
"Mohamed Bamba", | |
"Juancho Hernangómez", | |
"Danuel House", | |
"Kevin Knox", | |
"Gary Trent", | |
"Kezie Okpala", | |
"DeAndre Bembry", | |
"Shaquille Harrison", | |
"Vernon Carey", | |
"RJ Hampton", | |
"Marvin Bagley", | |
"Kira Lewis", | |
"Larry Nance", | |
"Tim Hardaway", | |
"Dennis Smith", | |
"Kevin Porter", | |
"C.J. McCollum", | |
"JJ Redick", | |
"James Ennis", | |
"Marcus Morris", | |
"Kevin Porter", | |
"Kenyon Martin", | |
"Gary Payton", | |
"David Duke", | |
"Brandon Boston", | |
"Herb Jones", | |
"Duane Washington", | |
"Derrick Walton Jr.", | |
"Cameron Thomas", | |
"Nicolas Claxton", | |
"Jabari Smith II", | |
'Jabari Smith', | |
"Alperen Şengün", | |
"Kristaps Porziņģis", | |
"Juancho Hernangómez", | |
"Nikola Jović", | |
"A.J. Green", | |
'Nikola Jokić', | |
'Jusuf Nurkić', | |
'Jonas ValanÄÂiÅ«nas', | |
'Dennis Schröder', | |
'Bogdan Bogdanović', | |
'Kenyon Martin Jr.', | |
'Trey Murphy', | |
'Vlatko ČanÄÂar', | |
'MarJon Beauchamp', | |
'Goran Dragić' | |
] | |
correctNames = [ | |
"Bruce Brown", | |
"T.J. McConnell", | |
"Frank Mason III", | |
"Troy Brown Jr.", | |
"Damion Lee", | |
"Svi Mykhailiuk", | |
"C.J. Miles", | |
"Brian Bowen II", | |
"Jacob Evans III", | |
"Wesley Iwundu", | |
"Melvin Frazier", | |
"Charlie Brown", | |
"Marko Guduric", | |
"T.J. Warren", | |
"TJ Leaf", | |
"Moe Harkless", | |
"Georges Niang", | |
"Jarrell Brantley", | |
"Maxi Kleber", | |
"Harry Giles", | |
"D. J. Wilson", | |
"Alen Smailagic", | |
"Guillermo Hernangomez", | |
"PJ Washington", | |
"Robert Williams", | |
"RJ Barrett", | |
"Jaren Jackson Jr.", | |
"Glenn Robinson III", | |
"Wendell Carter Jr.", | |
"OG Anunoby", | |
"P.J. Tucker", | |
"Michael Porter Jr.", | |
"Lonnie Walker IV", | |
"Derrick Jones Jr.", | |
"Kelly Oubre Jr.", | |
"Bradley Wanamaker", | |
"Timothe Luwawu", | |
"Otto Porter Jr.", | |
"Mo Bamba", | |
"Juan Hernangomez", | |
"Danuel House Jr.", | |
"Kevin Knox II", | |
"Gary Trent Jr.", | |
"KZ Okpala", | |
"DeAndre' Bembry", | |
"Shaq Harrison", | |
"Vernon Carey Jr.", | |
"R.J. Hampton", | |
"Marvin Bagley III", | |
"Kira Lewis Jr.", | |
"Larry Nance Jr.", | |
"Tim Hardaway Jr.", | |
"Dennis Smith Jr.", | |
"Kevin Porter Jr.", | |
"CJ McCollum", | |
"J.J. Redick", | |
"James Ennis III", | |
"Marcus Morris Sr.", | |
"Kevin Porter Jr", | |
"KJ Martin", | |
"Gary Payton II", | |
"David Duke Jr.", | |
"Brandon Boston Jr.", | |
"Herbert Jones", | |
"Duane Washington Jr.", | |
"Derrick Walton", | |
"Cam Thomas", | |
"Nic Claxton", | |
"Jabari Smith Jr.", | |
"Jabari Smith Jr.", | |
"Alperen Sengun", | |
"Kristaps Porzingis", | |
"Juancho Hernangomez", | |
"Nikola Jovic", | |
"AJ Green", | |
'Nikola Jokic', | |
'Jusuf Nurkic', | |
'Jonas Valanciunas', | |
'Dennis Schroder', | |
'Bogdan Bogdanovic', | |
'KJ Martin', | |
'Trey Murphy III', | |
'Vlatko Cancar', | |
'MarJon Beauchamp', | |
'Goran Dragic' | |
] | |
try: | |
for checkVar in range(len(wrongNames)): | |
projection_data['Player'] = projection_data['Player'].replace(wrongNames, correctNames) | |
except: | |
for checkVar in range(len(wrongNames)): | |
projection_data['Name'] = projection_data['Name'].replace(wrongNames, correctNames) | |
return projection_data | |
def grab_optimizer_data(URL): | |
optimizer_data = pd.read_json(Optimizer_URL) | |
wrongNames = ["Bruce Brown Jr.", | |
"TJ McConnell", | |
"Frank Mason", | |
"Troy Brown", | |
"Damian Lee", | |
"Sviatoslav Mykhailiuk", | |
"CJ Miles", | |
"Brian Bowen", | |
"Jacob Evans", | |
"Wes Iwundu", | |
"Melvin Frazier", | |
"Charlie Brown", | |
"Marko Guduric", | |
"TJ Warren", | |
"T. J. Leaf", | |
"Maurice Harkless", | |
"George Niang", | |
"Jarrell Brantley", | |
"Maximilian Kleber", | |
"Harry Giles III", | |
"D.J. Wilson", | |
"Alen Smailagic", | |
"Willy Hernangomez", | |
"P.J. Washington", | |
"Robert Williams III", | |
"R.J. Barrett", | |
"Jaren Jackson", | |
"Glenn Robinson", | |
"Wendell Carter", | |
"O.G. Anunoby", | |
"PJ Tucker", | |
"Michael Porter", | |
"Lonnie Walker", | |
"Derrick Jones", | |
"Kelly Oubre", | |
"Brad Wanamaker", | |
"Timothe Luwawu-Cabarrot", | |
"Otto Porter", | |
"Mohamed Bamba", | |
"Juancho Hernangómez", | |
"Danuel House", | |
"Kevin Knox", | |
"Gary Trent", | |
"Kezie Okpala", | |
"DeAndre Bembry", | |
"Shaquille Harrison", | |
"Vernon Carey", | |
"RJ Hampton", | |
"Marvin Bagley", | |
"Kira Lewis", | |
"Larry Nance", | |
"Tim Hardaway", | |
"Dennis Smith", | |
"Kevin Porter", | |
"C.J. McCollum", | |
"JJ Redick", | |
"James Ennis", | |
"Marcus Morris", | |
"Kevin Porter", | |
"Kenyon Martin", | |
"Gary Payton", | |
"David Duke", | |
"Brandon Boston", | |
"Herb Jones", | |
"Duane Washington", | |
"Derrick Walton Jr.", | |
"Cameron Thomas", | |
"Nicolas Claxton", | |
"Jabari Smith II", | |
'Jabari Smith', | |
"Alperen Şengün", | |
"Kristaps Porziņģis", | |
"Juancho Hernangómez", | |
"Nikola Jović", | |
"A.J. Green", | |
'Nikola Jokić', | |
'Jusuf Nurkić', | |
'Jonas ValanÄÂiÅ«nas', | |
'Dennis Schröder', | |
'Bogdan Bogdanović', | |
'Kenyon Martin Jr.', | |
'Trey Murphy', | |
'Vlatko ČanÄÂar', | |
'MarJon Beauchamp', | |
'Goran Dragić' | |
] | |
correctNames = [ | |
"Bruce Brown", | |
"T.J. McConnell", | |
"Frank Mason III", | |
"Troy Brown Jr.", | |
"Damion Lee", | |
"Svi Mykhailiuk", | |
"C.J. Miles", | |
"Brian Bowen II", | |
"Jacob Evans III", | |
"Wesley Iwundu", | |
"Melvin Frazier", | |
"Charlie Brown", | |
"Marko Guduric", | |
"T.J. Warren", | |
"TJ Leaf", | |
"Moe Harkless", | |
"Georges Niang", | |
"Jarrell Brantley", | |
"Maxi Kleber", | |
"Harry Giles", | |
"D. J. Wilson", | |
"Alen Smailagic", | |
"Guillermo Hernangomez", | |
"PJ Washington", | |
"Robert Williams", | |
"RJ Barrett", | |
"Jaren Jackson Jr.", | |
"Glenn Robinson III", | |
"Wendell Carter Jr.", | |
"OG Anunoby", | |
"P.J. Tucker", | |
"Michael Porter Jr.", | |
"Lonnie Walker IV", | |
"Derrick Jones Jr.", | |
"Kelly Oubre Jr.", | |
"Bradley Wanamaker", | |
"Timothe Luwawu", | |
"Otto Porter Jr.", | |
"Mo Bamba", | |
"Juan Hernangomez", | |
"Danuel House Jr.", | |
"Kevin Knox II", | |
"Gary Trent Jr.", | |
"KZ Okpala", | |
"DeAndre' Bembry", | |
"Shaq Harrison", | |
"Vernon Carey Jr.", | |
"R.J. Hampton", | |
"Marvin Bagley III", | |
"Kira Lewis Jr.", | |
"Larry Nance Jr.", | |
"Tim Hardaway Jr.", | |
"Dennis Smith Jr.", | |
"Kevin Porter Jr.", | |
"CJ McCollum", | |
"J.J. Redick", | |
"James Ennis III", | |
"Marcus Morris Sr.", | |
"Kevin Porter Jr", | |
"KJ Martin", | |
"Gary Payton II", | |
"David Duke Jr.", | |
"Brandon Boston Jr.", | |
"Herbert Jones", | |
"Duane Washington Jr.", | |
"Derrick Walton", | |
"Cam Thomas", | |
"Nic Claxton", | |
"Jabari Smith Jr.", | |
"Jabari Smith Jr.", | |
"Alperen Sengun", | |
"Kristaps Porzingis", | |
"Juancho Hernangomez", | |
"Nikola Jovic", | |
"AJ Green", | |
'Nikola Jokic', | |
'Jusuf Nurkic', | |
'Jonas Valanciunas', | |
'Dennis Schroder', | |
'Bogdan Bogdanovic', | |
'KJ Martin', | |
'Trey Murphy III', | |
'Vlatko Cancar', | |
'MarJon Beauchamp', | |
'Goran Dragic' | |
] | |
try: | |
for checkVar in range(len(wrongNames)): | |
projection_data['Player'] = projection_data['Player'].replace(wrongNames, correctNames) | |
except: | |
for checkVar in range(len(wrongNames)): | |
projection_data['Name'] = projection_data['Name'].replace(wrongNames, correctNames) | |
return projection_data | |
def grab_player_data(URL): | |
player_data = pd.read_json(Player_data_URL) | |
wrongNames = ["Bruce Brown Jr.", | |
"TJ McConnell", | |
"Frank Mason", | |
"Troy Brown", | |
"Damian Lee", | |
"Sviatoslav Mykhailiuk", | |
"CJ Miles", | |
"Brian Bowen", | |
"Jacob Evans", | |
"Wes Iwundu", | |
"Melvin Frazier", | |
"Charlie Brown", | |
"Marko Guduric", | |
"TJ Warren", | |
"T. J. Leaf", | |
"Maurice Harkless", | |
"George Niang", | |
"Jarrell Brantley", | |
"Maximilian Kleber", | |
"Harry Giles III", | |
"D.J. Wilson", | |
"Alen Smailagic", | |
"Willy Hernangomez", | |
"P.J. Washington", | |
"Robert Williams III", | |
"R.J. Barrett", | |
"Jaren Jackson", | |
"Glenn Robinson", | |
"Wendell Carter", | |
"O.G. Anunoby", | |
"PJ Tucker", | |
"Michael Porter", | |
"Lonnie Walker", | |
"Derrick Jones", | |
"Kelly Oubre", | |
"Brad Wanamaker", | |
"Timothe Luwawu-Cabarrot", | |
"Otto Porter", | |
"Mohamed Bamba", | |
"Juancho Hernangómez", | |
"Danuel House", | |
"Kevin Knox", | |
"Gary Trent", | |
"Kezie Okpala", | |
"DeAndre Bembry", | |
"Shaquille Harrison", | |
"Vernon Carey", | |
"RJ Hampton", | |
"Marvin Bagley", | |
"Kira Lewis", | |
"Larry Nance", | |
"Tim Hardaway", | |
"Dennis Smith", | |
"Kevin Porter", | |
"C.J. McCollum", | |
"JJ Redick", | |
"James Ennis", | |
"Marcus Morris", | |
"Kevin Porter", | |
"Kenyon Martin", | |
"Gary Payton", | |
"David Duke", | |
"Brandon Boston", | |
"Herb Jones", | |
"Duane Washington", | |
"Derrick Walton Jr.", | |
"Cameron Thomas", | |
"Nicolas Claxton", | |
"Jabari Smith II", | |
'Jabari Smith', | |
"Alperen Şengün", | |
"Kristaps Porziņģis", | |
"Juancho Hernangómez", | |
"Nikola Jović", | |
"A.J. Green", | |
'Nikola Jokić', | |
'Jusuf Nurkić', | |
'Jonas ValanÄÂiÅ«nas', | |
'Dennis Schröder', | |
'Bogdan Bogdanović', | |
'Kenyon Martin Jr.', | |
'Trey Murphy', | |
'Vlatko ČanÄÂar', | |
'MarJon Beauchamp', | |
'Goran Dragić' | |
] | |
correctNames = [ | |
"Bruce Brown", | |
"T.J. McConnell", | |
"Frank Mason III", | |
"Troy Brown Jr.", | |
"Damion Lee", | |
"Svi Mykhailiuk", | |
"C.J. Miles", | |
"Brian Bowen II", | |
"Jacob Evans III", | |
"Wesley Iwundu", | |
"Melvin Frazier", | |
"Charlie Brown", | |
"Marko Guduric", | |
"T.J. Warren", | |
"TJ Leaf", | |
"Moe Harkless", | |
"Georges Niang", | |
"Jarrell Brantley", | |
"Maxi Kleber", | |
"Harry Giles", | |
"D. J. Wilson", | |
"Alen Smailagic", | |
"Guillermo Hernangomez", | |
"PJ Washington", | |
"Robert Williams", | |
"RJ Barrett", | |
"Jaren Jackson Jr.", | |
"Glenn Robinson III", | |
"Wendell Carter Jr.", | |
"OG Anunoby", | |
"P.J. Tucker", | |
"Michael Porter Jr.", | |
"Lonnie Walker IV", | |
"Derrick Jones Jr.", | |
"Kelly Oubre Jr.", | |
"Bradley Wanamaker", | |
"Timothe Luwawu", | |
"Otto Porter Jr.", | |
"Mo Bamba", | |
"Juan Hernangomez", | |
"Danuel House Jr.", | |
"Kevin Knox II", | |
"Gary Trent Jr.", | |
"KZ Okpala", | |
"DeAndre' Bembry", | |
"Shaq Harrison", | |
"Vernon Carey Jr.", | |
"R.J. Hampton", | |
"Marvin Bagley III", | |
"Kira Lewis Jr.", | |
"Larry Nance Jr.", | |
"Tim Hardaway Jr.", | |
"Dennis Smith Jr.", | |
"Kevin Porter Jr.", | |
"CJ McCollum", | |
"J.J. Redick", | |
"James Ennis III", | |
"Marcus Morris Sr.", | |
"Kevin Porter Jr", | |
"KJ Martin", | |
"Gary Payton II", | |
"David Duke Jr.", | |
"Brandon Boston Jr.", | |
"Herbert Jones", | |
"Duane Washington Jr.", | |
"Derrick Walton", | |
"Cam Thomas", | |
"Nic Claxton", | |
"Jabari Smith Jr.", | |
"Jabari Smith Jr.", | |
"Alperen Sengun", | |
"Kristaps Porzingis", | |
"Juancho Hernangomez", | |
"Nikola Jovic", | |
"AJ Green", | |
'Nikola Jokic', | |
'Jusuf Nurkic', | |
'Jonas Valanciunas', | |
'Dennis Schroder', | |
'Bogdan Bogdanovic', | |
'KJ Martin', | |
'Trey Murphy III', | |
'Vlatko Cancar', | |
'MarJon Beauchamp', | |
'Goran Dragic' | |
] | |
try: | |
for checkVar in range(len(wrongNames)): | |
projection_data['Player'] = projection_data['Player'].replace(wrongNames, correctNames) | |
except: | |
for checkVar in range(len(wrongNames)): | |
projection_data['Name'] = projection_data['Name'].replace(wrongNames, correctNames) | |
return projection_data | |
def clean_API_data(): | |
optimizer_data = grab_optimizer_data(Optimizer_URL) | |
projection_data = grab_projection_data(Projection_URL) | |
player_data = grab_player_data(Player_data_URL) | |
final_data = player_data | |
final_data.rename(columns={"DK Max": "DK_Max", "DK Ceiling": "DK_Ceiling", "Median Value": "Median_Value", "Ceiling Value": "Ceiling_Value", "Max Value": "Max_Value"}, inplace = True) | |
projection_data = projection_data.loc[projection_data['Fantasy'] > 0] | |
projection_data.rename(columns={"Name": "Player", "Fantasy": "Median"}, inplace = True) | |
pos_dict = dict(zip(optimizer_data.Player, optimizer_data.Position)) | |
salary_dict = dict(zip(optimizer_data.Player, optimizer_data.Salary)) | |
own_dict = dict(zip(projection_data.Player, projection_data.Own)) | |
min_dict = dict(zip(projection_data.Player, projection_data.Minutes)) | |
team_dict = dict(zip(projection_data.Player, projection_data.Team)) | |
player_own_dict = dict(zip(optimizer_data['Player'], optimizer_data['Own'])) | |
player_proj_dict = dict(zip(optimizer_data['Player'], optimizer_data['Median'])) | |
return projection_data, optimizer_data, pos_dict, salary_dict, own_dict, min_dict, team_dict, player_own_dict, player_proj_dict, final_data | |
check_list = [] | |
lineup_display = [] | |
rand_player = 0 | |
boost_player = 0 | |
salaryCut = 0 | |
overall_data = clean_API_data() | |
projection_data = overall_data[0] | |
optimizer_data = overall_data[1] | |
pos_dict = overall_data[2] | |
salary_dict = overall_data[3] | |
own_dict = overall_data[4] | |
min_dict = overall_data[5] | |
team_dict = overall_data[6] | |
player_own_dict = overall_data[7] | |
player_proj_dict = overall_data[8] | |
final_data = overall_data[9] | |
DK_dict = dict(zip(final_data.Player, final_data.Median)) | |
DK_max_dict = dict(zip(final_data.Player, final_data.DK_Max)) | |
with tab1: | |
hold_container = st.empty() | |
if st.button("Refresh Table"): | |
overall_data = clean_API_data() | |
projection_data = overall_data[0] | |
optimizer_data = overall_data[1] | |
pos_dict = overall_data[2] | |
salary_dict = overall_data[3] | |
own_dict = overall_data[4] | |
min_dict = overall_data[5] | |
team_dict = overall_data[6] | |
player_own_dict = overall_data[7] | |
player_proj_dict = overall_data[8] | |
final_data = overall_data[9] | |
DK_dict = dict(zip(final_data.Player, final_data.Median)) | |
DK_max_dict = dict(zip(final_data.Player, final_data.DK_Max)) | |
optimizer_data = optimizer_data.round(2) | |
builder = GridOptionsBuilder.from_dataframe(optimizer_data) | |
builder.configure_pagination(enabled=True) | |
builder.configure_column('Median', editable=True) | |
proj_table = builder.build() | |
AgGrid(optimizer_data, gridOptions=proj_table) | |
csv_data = grab_csv_data(CSV_URL) | |
csv_merge = pd.merge(csv_data, projection_data, how='left', left_on=['Player'], right_on = ['Player']) | |
id_dict = dict(zip(csv_merge['Player'], csv_merge['Name + ID'])) | |
with tab2: | |
col1, col2 = st.columns([1, 4]) | |
with col2: | |
display_container = st.empty() | |
st.info('Note that this optimization process aims to create a large set of usable lineups, and not necessarily an exact amount.') | |
with col1: | |
if st.button("Refresh Data"): | |
overall_data = clean_API_data() | |
projection_data = overall_data[0] | |
optimizer_data = overall_data[1] | |
pos_dict = overall_data[2] | |
salary_dict = overall_data[3] | |
own_dict = overall_data[4] | |
min_dict = overall_data[5] | |
team_dict = overall_data[6] | |
player_own_dict = overall_data[7] | |
player_proj_dict = overall_data[8] | |
final_data = overall_data[9] | |
DK_dict = dict(zip(final_data.Player, final_data.Median)) | |
DK_max_dict = dict(zip(final_data.Player, final_data.DK_Max)) | |
func_choice_select = st.selectbox('Choose optimization', ('Cash', 'Small Field', 'Medium Field', 'Large Field')) | |
max_sal = st.number_input('Max Salary', min_value = 35000, max_value = 50000, value = 50000, step = 100) | |
min_sal = st.number_input('Min Salary', min_value = 35000, max_value = 49900, value = 49000, step = 100) | |
proj_cut = st.number_input('Lowest median allowed', min_value = 0, max_value = 25, value = 10, step = 1) | |
ceiling_var = st.number_input('Relative ceiling above:', min_value = 0.0, max_value = 10.0, value = 6.5, step = .1) | |
slack_var = st.number_input('Median Variance in Sims', min_value = 0, max_value = 5, value = 0, step = 1) | |
totalRuns_raw = st.number_input('How many Sims', min_value = 1, max_value = 1000, value = 5, step = 1) | |
avoid_teams = st.multiselect('Select teams to exclude', options = optimizer_data['Team'].unique()) | |
trim_true = 0 | |
own_trim_var = 50 | |
trim_var = 5 | |
trim_dudes = trim_var | |
if func_choice_select == 'Cash': | |
func_var = 0 | |
elif func_choice_select == 'Small Field': | |
func_var = 1 | |
elif func_choice_select == 'Medium Field': | |
func_var = 2 | |
elif func_choice_select == 'Large Field': | |
func_var = 2 | |
totalRuns = totalRuns_raw * 5 * (func_var + 1) | |
cut_group_1 = [] | |
cut_group_2 = [] | |
force_group_1 = [] | |
force_group_2 = [] | |
avoid_players = [] | |
lock_player = [] | |
lineups = [] | |
player_pool_raw = [] | |
player_pool = [] | |
player_count = [] | |
player_trim_pool = [] | |
portfolio = pd.DataFrame() | |
x = 1 | |
if st.button('Optimize'): | |
max_proj = 1000 | |
max_own = 1000 | |
total_proj = 0 | |
total_own = 0 | |
with col2: | |
with st.spinner('Wait for it...'): | |
with hold_container.container(): | |
while x <= totalRuns: | |
if x > 1: | |
if trim_var > 0: | |
for p_var in range(0,8): | |
try: | |
player_pool_raw.append(lineup_final[p_var][0]) | |
except: | |
pass | |
[player_pool.append(x) for x in player_pool_raw if x not in player_pool] | |
for c_var in range(0,len(player_pool)): | |
player_count.append(player_pool_raw.count(player_pool[c_var])) | |
player_trim_pool = pd.DataFrame(player_pool, columns = ['Player']) | |
player_trim_pool['instances'] = player_count | |
player_trim_pool_check = player_trim_pool | |
player_trim_pool = player_trim_pool.nlargest(trim_var, ['instances']) | |
if len(player_trim_pool) > 0: | |
player_trim_raw = player_trim_pool.sample(n=trim_dudes) | |
player_trim_list = player_trim_raw['Player'].tolist() | |
elif trim_var == 0: | |
player_trim_list = [] | |
raw_proj_file = optimizer_data | |
raw_flex_file = raw_proj_file.dropna(how='all') | |
raw_flex_file = raw_flex_file.loc[raw_flex_file['Median'] > 0] | |
raw_flex_file = raw_flex_file.loc[raw_flex_file['Median'] > proj_cut] | |
flex_file = raw_flex_file | |
flex_file = flex_file[['Player', 'Team', 'Position', 'Salary', 'Median', 'Own', 'LevX', 'ValX']] | |
flex_file.rename(columns={"Position": "Pos", "Own": "Proj DK Own%"}, inplace = True) | |
flex_file['name_var'] = flex_file['Player'] | |
flex_file['lock'] = flex_file['Player'].isin(lock_player)*1 | |
if x > 1: | |
flex_file['trim'] = flex_file['Player'].isin(player_trim_list)*1 | |
flex_file['force_group_1'] = flex_file['Player'].isin(force_group_1)*1 | |
flex_file['force_group_2'] = flex_file['Player'].isin(force_group_2)*1 | |
flex_file['cut_group_1'] = flex_file['Player'].isin(cut_group_1)*1 | |
flex_file['cut_group_2'] = flex_file['Player'].isin(cut_group_2)*1 | |
chalk_file = flex_file.sort_values(by='Proj DK Own%', ascending=False) | |
chalk_group_df = chalk_file.sample(n=10) | |
chalk_group = chalk_group_df['Player'].tolist() | |
flex_file['chalk_group'] = flex_file['Player'].isin(chalk_group)*1 | |
lev_file = flex_file.sort_values(by='LevX', ascending=False) | |
lev_group_df = lev_file.sample(n=10) | |
lev_group = lev_group_df['Player'].tolist() | |
flex_file['lev_group'] = flex_file['Player'].isin(lev_group)*1 | |
flex_file_check = flex_file | |
check_list.append(flex_file['Median'][4]) | |
if len(avoid_players) > 0: | |
flex_file = flex_file.loc[~flex_file['Player'].isin(avoid_players)] | |
if len(avoid_teams) > 0: | |
flex_file = flex_file.loc[~flex_file['Team'].isin(avoid_teams)] | |
player_ids = flex_file.index | |
flex_file['DK Ceiling'] = flex_file['Player'].map(DK_dict) | |
flex_file['DK Max'] = flex_file['Player'].map(DK_max_dict) | |
flex_file['Ceiling Value'] = np.where(flex_file['Salary'] <=6000, flex_file['DK Ceiling'] / (flex_file['Salary']/1000), ceiling_var) | |
flex_file_ceilings = flex_file | |
flex_file = flex_file.loc[flex_file['Ceiling Value'] >= ceiling_var] | |
overall_players = flex_file[['Player']] | |
overall_players['player_var_add'] = flex_file.index | |
overall_players['player_var'] = 'player_vars_' + overall_players['player_var_add'].astype(str) | |
player_vars = pulp.LpVariable.dicts("player_vars", flex_file.index, 0, 1, pulp.LpInteger) | |
total_score = pulp.LpProblem("Fantasy_Points_Problem", pulp.LpMaximize) | |
player_match = dict(zip(overall_players['player_var'], overall_players['Player'])) | |
player_index_match = dict(zip(overall_players['player_var'], overall_players['player_var_add'])) | |
player_own = dict(zip(flex_file['Player'], flex_file['Proj DK Own%'])) | |
player_sal = dict(zip(flex_file['Player'], flex_file['Salary'])) | |
player_proj = dict(zip(flex_file['Player'], flex_file['Median'])) | |
player_pos = dict(zip(flex_file['Player'], flex_file['Pos'])) | |
obj_points = {idx: (flex_file['Median'][idx]) for idx in flex_file.index} | |
total_score += sum([player_vars[idx]*obj_points[idx] for idx in flex_file.index]) | |
obj_points_max = {idx: (flex_file['Median'][idx]) for idx in flex_file.index} | |
obj_own_max = {idx: (flex_file['Proj DK Own%'][idx]) for idx in flex_file.index} | |
obj_salary = {idx: (flex_file['Salary'][idx]) for idx in flex_file.index} | |
total_score += pulp.lpSum([player_vars[idx]*obj_salary[idx] for idx in flex_file.index]) <= max_sal | |
total_score += pulp.lpSum([player_vars[idx]*obj_salary[idx] for idx in flex_file.index]) >= min_sal | |
if len(lock_player) > 0: | |
for flex in flex_file['lock'].unique(): | |
sub_idx = flex_file[flex_file['lock'] == 1].index | |
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx]) == len(lock_player) | |
if len(force_group_1) > 0: | |
for flex in flex_file['force_group_1'].unique(): | |
sub_idx = flex_file[flex_file['force_group_1'] == 1].index | |
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx]) >= 1 | |
if len(force_group_2) > 0: | |
for flex in flex_file['force_group_2'].unique(): | |
sub_idx = flex_file[flex_file['force_group_2'] == 1].index | |
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx]) >= 1 | |
if len(cut_group_1) > 0: | |
for flex in flex_file['cut_group_1'].unique(): | |
sub_idx = flex_file[flex_file['cut_group_1'] == 1].index | |
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx]) <= 1 | |
if len(cut_group_2) > 0: | |
for flex in flex_file['cut_group_2'].unique(): | |
sub_idx = flex_file[flex_file['cut_group_2'] == 1].index | |
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx]) <= 1 | |
if len(player_trim_pool) > 0: | |
for flex in flex_file['trim'].unique(): | |
sub_idx = flex_file[flex_file['trim'] == 1].index | |
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx]) == 0 | |
if func_var > 0: | |
for flex in flex_file['lev_group'].unique(): | |
sub_idx = flex_file[flex_file['lev_group'] == 1].index | |
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx]) >= func_var | |
for flex in flex_file['chalk_group'].unique(): | |
sub_idx = flex_file[flex_file['chalk_group'] == 1].index | |
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx]) <= 6 - func_var | |
for flex in flex_file['Pos'].unique(): | |
sub_idx = flex_file[flex_file['Pos'].str.contains("PG")].index | |
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx]) >= 1 | |
for flex in flex_file['Pos'].unique(): | |
sub_idx = flex_file[flex_file['Pos'].str.contains("SG")].index | |
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx]) >= 1 | |
for flex in flex_file['Pos'].unique(): | |
sub_idx = flex_file[flex_file['Pos'].str.contains("SF")].index | |
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx]) >= 1 | |
for flex in flex_file['Pos'].unique(): | |
sub_idx = flex_file[flex_file['Pos'].str.contains("PF")].index | |
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx]) >= 1 | |
for flex in flex_file['Pos'].unique(): | |
sub_idx = flex_file[flex_file['Pos'].str.contains("C")].index | |
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx]) >= 1 | |
for flex in flex_file['Pos'].unique(): | |
sub_idx = flex_file[flex_file['Pos'].str.contains("C")].index | |
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx]) <= 4 | |
for flex in flex_file['Pos'].unique(): | |
sub_idx = flex_file[flex_file['Pos'].str.contains("G")].index | |
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx]) >= 3 | |
for flex in flex_file['Pos'].unique(): | |
sub_idx = flex_file[flex_file['Pos'].str.contains("F")].index | |
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx]) >= 3 | |
for flex in flex_file['Pos'].unique(): | |
sub_idx = flex_file[(flex_file['Pos'].str.contains("F")) | (flex_file['Pos'].str.contains("C"))].index | |
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx]) >= 4 | |
for flex in flex_file['Pos'].unique(): | |
sub_idx = flex_file[flex_file['Pos'] == ("PG")].index | |
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx]) <= 3 | |
for flex in flex_file['Pos'].unique(): | |
sub_idx = flex_file[flex_file['Pos'] == ("SG")].index | |
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx]) <= 3 | |
for flex in flex_file['Pos'].unique(): | |
sub_idx = flex_file[flex_file['Pos'] == ("SF")].index | |
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx]) <= 3 | |
for flex in flex_file['Pos'].unique(): | |
sub_idx = flex_file[flex_file['Pos'] == ("PF")].index | |
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx]) <= 3 | |
for flex in flex_file['Pos'].unique(): | |
sub_idx = flex_file[flex_file['Pos'] == ("C")].index | |
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx]) <= 2 | |
for flex in flex_file['Pos'].unique(): | |
sub_idx = flex_file[(flex_file['Pos'] == ("PF/C")) | (flex_file['Pos'] == ("C")) | (flex_file['Pos'] == ("PF")) | (flex_file['Pos'] == ("SF/PF"))].index | |
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx]) >= 2 | |
for flex in flex_file['Pos'].unique(): | |
sub_idx = flex_file[(flex_file['Pos'] == ("PG")) | (flex_file['Pos'] == ("C"))].index | |
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx]) <= 4 | |
for flex in flex_file['Pos'].unique(): | |
sub_idx = flex_file[(flex_file['Pos'] == ("SG")) | (flex_file['Pos'] == ("C"))].index | |
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx]) <= 4 | |
for flex in flex_file['Pos'].unique(): | |
sub_idx = flex_file[(flex_file['Pos'] == ("SF")) | (flex_file['Pos'] == ("C"))].index | |
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx]) <= 4 | |
for flex in flex_file['Pos'].unique(): | |
sub_idx = flex_file[(flex_file['Pos'] == ("PF")) | (flex_file['Pos'] == ("C"))].index | |
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx]) <= 4 | |
for flex in flex_file['Pos'].unique(): | |
sub_idx = flex_file[(flex_file['Pos'].str.contains("PF")) | (flex_file['Pos'] == ("C"))].index | |
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx]) <= 4 | |
for flex in flex_file['Pos'].unique(): | |
sub_idx = flex_file[flex_file['Pos'] != "Var"].index | |
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx]) == 8 | |
player_count = [] | |
player_trim = [] | |
lineup_list = [] | |
total_score += pulp.lpSum([player_vars[idx]*obj_points_max[idx] for idx in flex_file.index]) <= max_proj - .001 | |
if trim_true == 1: | |
total_score += pulp.lpSum([player_vars[idx]*obj_points_max[idx] for idx in flex_file.index]) <= (max_own + int(own_trim_var)) - .01 | |
total_score.solve() | |
for v in total_score.variables(): | |
if v.varValue > 0: | |
lineup_list.append(v.name) | |
df = pd.DataFrame(lineup_list) | |
df['Names'] = df[0].map(player_match) | |
df['Cost'] = df['Names'].map(player_sal) | |
df['Proj'] = df['Names'].map(player_proj) | |
df['Own'] = df['Names'].map(player_own) | |
total_cost = sum(df['Cost']) | |
total_own = sum(df['Own']) | |
total_proj = sum(df['Proj']) | |
lineup_raw = pd.DataFrame(lineup_list) | |
lineup_raw['Names'] = lineup_raw[0].map(player_match) | |
lineup_raw['value'] = lineup_raw[0].map(player_index_match) | |
lineup_final = lineup_raw.sort_values(by=['value']) | |
del lineup_final[lineup_final.columns[0]] | |
del lineup_final[lineup_final.columns[1]] | |
lineup_final = lineup_final.reset_index(drop=True) | |
lineup_test = lineup_final | |
lineup_final = lineup_final.T | |
lineup_final['Cost'] = total_cost | |
lineup_final['Proj'] = total_proj | |
lineup_final['Own'] = total_own | |
if total_cost < 50001: | |
lineups.append(lineup_final) | |
lineup_test['Salary'] = lineup_test['Names'].map(player_sal) | |
lineup_test['Proj'] = lineup_test['Names'].map(player_proj) | |
lineup_test['Own'] = lineup_test['Names'].map(player_own) | |
lineup_test.loc['Column_Total'] = lineup_test.sum(numeric_only=True, axis=0) | |
lineup_display.append(lineup_test) | |
with col2: | |
with st.container(): | |
st.table(lineup_test) | |
max_proj = total_proj | |
max_own = total_own | |
check_list.append(total_proj) | |
portfolio = portfolio.append(lineup_final, ignore_index = True) | |
x += 1 | |
portfolio.rename(columns={0: "Player", 1: "Player", 2: "Player", 3: "Player", 4: "Player", 5: "Player", 6: "Player", 7: "Player"}, inplace = True) | |
portfolio = portfolio.dropna() | |
final_outcomes = portfolio | |
final_outcomes.columns = ['Player', 'Player.1', 'Player.2', 'Player.3', 'Player.4', 'Player.5', 'Player.6', 'Player.7', 'Cost', 'Proj', 'Own'] | |
final_outcomes['pos.1'] = final_outcomes['Player'].map(pos_dict) | |
final_outcomes['pos.2'] = final_outcomes['Player.1'].map(pos_dict) | |
final_outcomes['pos.3'] = final_outcomes['Player.2'].map(pos_dict) | |
final_outcomes['pos.4'] = final_outcomes['Player.3'].map(pos_dict) | |
final_outcomes['pos.5'] = final_outcomes['Player.4'].map(pos_dict) | |
final_outcomes['pos.6'] = final_outcomes['Player.5'].map(pos_dict) | |
final_outcomes['pos.7'] = final_outcomes['Player.6'].map(pos_dict) | |
final_outcomes['pos.8'] = final_outcomes['Player.7'].map(pos_dict) | |
final_positions = final_outcomes[['pos.1','pos.2','pos.3','pos.4','pos.5','pos.6','pos.7','pos.8']] | |
final_outcomes['PG-count'] = final_positions.apply(lambda x: x.str.contains("PG").sum(), axis=1) | |
final_outcomes['SG-count'] = final_positions.apply(lambda x: x.str.contains("SG").sum(), axis=1) | |
final_outcomes['SF-count'] = final_positions.apply(lambda x: x.str.contains("SF").sum(), axis=1) | |
final_outcomes['PF-count'] = final_positions.apply(lambda x: x.str.contains("PF").sum(), axis=1) | |
final_outcomes['C-count'] = final_positions.apply(lambda x: x.str.contains("C").sum(), axis=1) | |
final_outcomes['two_c'] = final_positions.apply(lambda x: x.str.fullmatch("C").sum(), axis=1) | |
final_outcomes['two_pg'] = final_positions.apply(lambda x: x.str.fullmatch("PG").sum(), axis=1) | |
final_outcomes['two_sg'] = final_positions.apply(lambda x: x.str.fullmatch("SG").sum(), axis=1) | |
final_outcomes['two_sf'] = final_positions.apply(lambda x: x.str.fullmatch("SF").sum(), axis=1) | |
final_outcomes['two_pf'] = final_positions.apply(lambda x: x.str.fullmatch("PF").sum(), axis=1) | |
final_outcomes['SG/SF'] = final_positions.apply(lambda x: x.str.match("SG/SF").sum(), axis=1) | |
final_outcomes['SF/PF'] = final_positions.apply(lambda x: x.str.match("SF/PF").sum(), axis=1) | |
final_outcomes['PG_hard'] = final_positions.apply(lambda x: x.str.fullmatch("PG").sum(), axis=1) | |
final_outcomes['SG_hard'] = final_positions.apply(lambda x: x.str.fullmatch("SG").sum(), axis=1) | |
final_outcomes['SF_hard'] = final_positions.apply(lambda x: x.str.fullmatch("SF").sum(), axis=1) | |
final_outcomes['PF_hard'] = final_positions.apply(lambda x: x.str.fullmatch("PF").sum(), axis=1) | |
final_outcomes['PG'] = 0 | |
final_outcomes['SG'] = 0 | |
final_outcomes['SF'] = 0 | |
final_outcomes['PF'] = 0 | |
final_outcomes['C'] = 0 | |
final_outcomes['G'] = 0 | |
final_outcomes['F'] = 0 | |
final_outcomes['UTIL'] = 0 | |
final_outcomes['C'] = np.where((final_outcomes['C-count'] == 1) & (final_outcomes['pos.1'].str.contains("C")) & (final_outcomes['C'] == 0), final_outcomes['Player'], final_outcomes['C']) | |
final_outcomes['C'] = np.where((final_outcomes['C-count'] == 1) & (final_outcomes['pos.2'].str.contains("C")) & (final_outcomes['C'] == 0), final_outcomes['Player.1'], final_outcomes['C']) | |
final_outcomes['C'] = np.where((final_outcomes['C-count'] == 1) & (final_outcomes['pos.3'].str.contains("C")) & (final_outcomes['C'] == 0), final_outcomes['Player.2'], final_outcomes['C']) | |
final_outcomes['C'] = np.where((final_outcomes['C-count'] == 1) & (final_outcomes['pos.4'].str.contains("C")) & (final_outcomes['C'] == 0), final_outcomes['Player.3'], final_outcomes['C']) | |
final_outcomes['C'] = np.where((final_outcomes['C-count'] == 1) & (final_outcomes['pos.5'].str.contains("C")) & (final_outcomes['C'] == 0), final_outcomes['Player.4'], final_outcomes['C']) | |
final_outcomes['C'] = np.where((final_outcomes['C-count'] == 1) & (final_outcomes['pos.6'].str.contains("C")) & (final_outcomes['C'] == 0), final_outcomes['Player.5'], final_outcomes['C']) | |
final_outcomes['C'] = np.where((final_outcomes['C-count'] == 1) & (final_outcomes['pos.7'].str.contains("C")) & (final_outcomes['C'] == 0), final_outcomes['Player.6'], final_outcomes['C']) | |
final_outcomes['C'] = np.where((final_outcomes['C-count'] == 1) & (final_outcomes['pos.8'].str.contains("C")) & (final_outcomes['C'] == 0), final_outcomes['Player.7'], final_outcomes['C']) | |
final_outcomes['UTIL'] = np.where((final_outcomes['PG_hard'] == 3) & (final_outcomes['Player'].map(pos_dict) == 'PG') & (final_outcomes['PG'] != final_outcomes['Player']), final_outcomes['Player'], final_outcomes['UTIL']) | |
final_outcomes['UTIL'] = np.where((final_outcomes['PG_hard'] == 3) & (final_outcomes['Player.1'].map(pos_dict) == 'PG') & (final_outcomes['PG'] != final_outcomes['Player.1']), final_outcomes['Player.1'], final_outcomes['UTIL']) | |
final_outcomes['UTIL'] = np.where((final_outcomes['PG_hard'] == 3) & (final_outcomes['Player.2'].map(pos_dict) == 'PG') & (final_outcomes['PG'] != final_outcomes['Player.2']), final_outcomes['Player.2'], final_outcomes['UTIL']) | |
final_outcomes['UTIL'] = np.where((final_outcomes['PG_hard'] == 3) & (final_outcomes['Player.3'].map(pos_dict) == 'PG') & (final_outcomes['PG'] != final_outcomes['Player.3']), final_outcomes['Player.3'], final_outcomes['UTIL']) | |
final_outcomes['UTIL'] = np.where((final_outcomes['PG_hard'] == 3) & (final_outcomes['Player.4'].map(pos_dict) == 'PG') & (final_outcomes['PG'] != final_outcomes['Player.4']), final_outcomes['Player.4'], final_outcomes['UTIL']) | |
final_outcomes['UTIL'] = np.where((final_outcomes['PG_hard'] == 3) & (final_outcomes['Player.5'].map(pos_dict) == 'PG') & (final_outcomes['PG'] != final_outcomes['Player.5']), final_outcomes['Player.5'], final_outcomes['UTIL']) | |
final_outcomes['UTIL'] = np.where((final_outcomes['PG_hard'] == 3) & (final_outcomes['Player.6'].map(pos_dict) == 'PG') & (final_outcomes['PG'] != final_outcomes['Player.6']), final_outcomes['Player.6'], final_outcomes['UTIL']) | |
final_outcomes['UTIL'] = np.where((final_outcomes['PG_hard'] == 3) & (final_outcomes['Player.7'].map(pos_dict) == 'PG') & (final_outcomes['PG'] != final_outcomes['Player.7']), final_outcomes['Player.7'], final_outcomes['UTIL']) | |
final_outcomes['G'] = np.where((final_outcomes['PG_hard'] >= 2) & (final_outcomes['Player'].map(pos_dict) == 'PG') & (final_outcomes['PG'] != final_outcomes['Player']) & (final_outcomes['UTIL'] != final_outcomes['Player']), final_outcomes['Player'], final_outcomes['G']) | |
final_outcomes['G'] = np.where((final_outcomes['PG_hard'] >= 2) & (final_outcomes['Player.1'].map(pos_dict) == 'PG') & (final_outcomes['PG'] != final_outcomes['Player.1']) & (final_outcomes['UTIL'] != final_outcomes['Player.1']), final_outcomes['Player.1'], final_outcomes['G']) | |
final_outcomes['G'] = np.where((final_outcomes['PG_hard'] >= 2) & (final_outcomes['Player.2'].map(pos_dict) == 'PG') & (final_outcomes['PG'] != final_outcomes['Player.2']) & (final_outcomes['UTIL'] != final_outcomes['Player.2']), final_outcomes['Player.2'], final_outcomes['G']) | |
final_outcomes['G'] = np.where((final_outcomes['PG_hard'] >= 2) & (final_outcomes['Player.3'].map(pos_dict) == 'PG') & (final_outcomes['PG'] != final_outcomes['Player.3']) & (final_outcomes['UTIL'] != final_outcomes['Player.3']), final_outcomes['Player.3'], final_outcomes['G']) | |
final_outcomes['G'] = np.where((final_outcomes['PG_hard'] >= 2) & (final_outcomes['Player.4'].map(pos_dict) == 'PG') & (final_outcomes['PG'] != final_outcomes['Player.4']) & (final_outcomes['UTIL'] != final_outcomes['Player.4']), final_outcomes['Player.4'], final_outcomes['G']) | |
final_outcomes['G'] = np.where((final_outcomes['PG_hard'] >= 2) & (final_outcomes['Player.5'].map(pos_dict) == 'PG') & (final_outcomes['PG'] != final_outcomes['Player.5']) & (final_outcomes['UTIL'] != final_outcomes['Player.5']), final_outcomes['Player.5'], final_outcomes['G']) | |
final_outcomes['G'] = np.where((final_outcomes['PG_hard'] >= 2) & (final_outcomes['Player.6'].map(pos_dict) == 'PG') & (final_outcomes['PG'] != final_outcomes['Player.6']) & (final_outcomes['UTIL'] != final_outcomes['Player.6']), final_outcomes['Player.6'], final_outcomes['G']) | |
final_outcomes['G'] = np.where((final_outcomes['PG_hard'] >= 2) & (final_outcomes['Player.7'].map(pos_dict) == 'PG') & (final_outcomes['PG'] != final_outcomes['Player.7']) & (final_outcomes['UTIL'] != final_outcomes['Player.7']), final_outcomes['Player.7'], final_outcomes['G']) | |
final_outcomes['UTIL'] = np.where((final_outcomes['SG_hard'] == 3) & (final_outcomes['Player'].map(pos_dict) == 'SG') & (final_outcomes['SG'] != final_outcomes['Player']), final_outcomes['Player'], final_outcomes['UTIL']) | |
final_outcomes['UTIL'] = np.where((final_outcomes['SG_hard'] == 3) & (final_outcomes['Player.1'].map(pos_dict) == 'SG') & (final_outcomes['SG'] != final_outcomes['Player.1']), final_outcomes['Player.1'], final_outcomes['UTIL']) | |
final_outcomes['UTIL'] = np.where((final_outcomes['SG_hard'] == 3) & (final_outcomes['Player.2'].map(pos_dict) == 'SG') & (final_outcomes['SG'] != final_outcomes['Player.2']), final_outcomes['Player.2'], final_outcomes['UTIL']) | |
final_outcomes['UTIL'] = np.where((final_outcomes['SG_hard'] == 3) & (final_outcomes['Player.3'].map(pos_dict) == 'SG') & (final_outcomes['SG'] != final_outcomes['Player.3']), final_outcomes['Player.3'], final_outcomes['UTIL']) | |
final_outcomes['UTIL'] = np.where((final_outcomes['SG_hard'] == 3) & (final_outcomes['Player.4'].map(pos_dict) == 'SG') & (final_outcomes['SG'] != final_outcomes['Player.4']), final_outcomes['Player.4'], final_outcomes['UTIL']) | |
final_outcomes['UTIL'] = np.where((final_outcomes['SG_hard'] == 3) & (final_outcomes['Player.5'].map(pos_dict) == 'SG') & (final_outcomes['SG'] != final_outcomes['Player.5']), final_outcomes['Player.5'], final_outcomes['UTIL']) | |
final_outcomes['UTIL'] = np.where((final_outcomes['SG_hard'] == 3) & (final_outcomes['Player.6'].map(pos_dict) == 'SG') & (final_outcomes['SG'] != final_outcomes['Player.6']), final_outcomes['Player.6'], final_outcomes['UTIL']) | |
final_outcomes['UTIL'] = np.where((final_outcomes['SG_hard'] == 3) & (final_outcomes['Player.7'].map(pos_dict) == 'SG') & (final_outcomes['SG'] != final_outcomes['Player.7']), final_outcomes['Player.7'], final_outcomes['UTIL']) | |
final_outcomes['G'] = np.where((final_outcomes['SG_hard'] >= 2) & (final_outcomes['Player'].map(pos_dict) == 'SG') & (final_outcomes['SG'] != final_outcomes['Player']) & (final_outcomes['UTIL'] != final_outcomes['Player']), final_outcomes['Player'], final_outcomes['G']) | |
final_outcomes['G'] = np.where((final_outcomes['SG_hard'] >= 2) & (final_outcomes['Player.1'].map(pos_dict) == 'SG') & (final_outcomes['SG'] != final_outcomes['Player.1']) & (final_outcomes['UTIL'] != final_outcomes['Player.1']), final_outcomes['Player.1'], final_outcomes['G']) | |
final_outcomes['G'] = np.where((final_outcomes['SG_hard'] >= 2) & (final_outcomes['Player.2'].map(pos_dict) == 'SG') & (final_outcomes['SG'] != final_outcomes['Player.2']) & (final_outcomes['UTIL'] != final_outcomes['Player.2']), final_outcomes['Player.2'], final_outcomes['G']) | |
final_outcomes['G'] = np.where((final_outcomes['SG_hard'] >= 2) & (final_outcomes['Player.3'].map(pos_dict) == 'SG') & (final_outcomes['SG'] != final_outcomes['Player.3']) & (final_outcomes['UTIL'] != final_outcomes['Player.3']), final_outcomes['Player.3'], final_outcomes['G']) | |
final_outcomes['G'] = np.where((final_outcomes['SG_hard'] >= 2) & (final_outcomes['Player.4'].map(pos_dict) == 'SG') & (final_outcomes['SG'] != final_outcomes['Player.4']) & (final_outcomes['UTIL'] != final_outcomes['Player.4']), final_outcomes['Player.4'], final_outcomes['G']) | |
final_outcomes['G'] = np.where((final_outcomes['SG_hard'] >= 2) & (final_outcomes['Player.5'].map(pos_dict) == 'SG') & (final_outcomes['SG'] != final_outcomes['Player.5']) & (final_outcomes['UTIL'] != final_outcomes['Player.5']), final_outcomes['Player.5'], final_outcomes['G']) | |
final_outcomes['G'] = np.where((final_outcomes['SG_hard'] >= 2) & (final_outcomes['Player.6'].map(pos_dict) == 'SG') & (final_outcomes['SG'] != final_outcomes['Player.6']) & (final_outcomes['UTIL'] != final_outcomes['Player.6']), final_outcomes['Player.6'], final_outcomes['G']) | |
final_outcomes['G'] = np.where((final_outcomes['SG_hard'] >= 2) & (final_outcomes['Player.7'].map(pos_dict) == 'SG') & (final_outcomes['SG'] != final_outcomes['Player.7']) & (final_outcomes['UTIL'] != final_outcomes['Player.7']), final_outcomes['Player.7'], final_outcomes['G']) | |
final_outcomes['UTIL'] = np.where((final_outcomes['SF_hard'] == 3) & (final_outcomes['Player'].map(pos_dict) == 'SF') & (final_outcomes['SF'] != final_outcomes['Player']), final_outcomes['Player'], final_outcomes['UTIL']) | |
final_outcomes['UTIL'] = np.where((final_outcomes['SF_hard'] == 3) & (final_outcomes['Player.1'].map(pos_dict) == 'SF') & (final_outcomes['SF'] != final_outcomes['Player.1']), final_outcomes['Player.1'], final_outcomes['UTIL']) | |
final_outcomes['UTIL'] = np.where((final_outcomes['SF_hard'] == 3) & (final_outcomes['Player.2'].map(pos_dict) == 'SF') & (final_outcomes['SF'] != final_outcomes['Player.2']), final_outcomes['Player.2'], final_outcomes['UTIL']) | |
final_outcomes['UTIL'] = np.where((final_outcomes['SF_hard'] == 3) & (final_outcomes['Player.3'].map(pos_dict) == 'SF') & (final_outcomes['SF'] != final_outcomes['Player.3']), final_outcomes['Player.3'], final_outcomes['UTIL']) | |
final_outcomes['UTIL'] = np.where((final_outcomes['SF_hard'] == 3) & (final_outcomes['Player.4'].map(pos_dict) == 'SF') & (final_outcomes['SF'] != final_outcomes['Player.4']), final_outcomes['Player.4'], final_outcomes['UTIL']) | |
final_outcomes['UTIL'] = np.where((final_outcomes['SF_hard'] == 3) & (final_outcomes['Player.5'].map(pos_dict) == 'SF') & (final_outcomes['SF'] != final_outcomes['Player.5']), final_outcomes['Player.5'], final_outcomes['UTIL']) | |
final_outcomes['UTIL'] = np.where((final_outcomes['SF_hard'] == 3) & (final_outcomes['Player.6'].map(pos_dict) == 'SF') & (final_outcomes['SF'] != final_outcomes['Player.6']), final_outcomes['Player.6'], final_outcomes['UTIL']) | |
final_outcomes['UTIL'] = np.where((final_outcomes['SF_hard'] == 3) & (final_outcomes['Player.7'].map(pos_dict) == 'SF') & (final_outcomes['SF'] != final_outcomes['Player.7']), final_outcomes['Player.7'], final_outcomes['UTIL']) | |
final_outcomes['F'] = np.where((final_outcomes['SF_hard'] >= 2) & (final_outcomes['Player'].map(pos_dict) == 'SF') & (final_outcomes['SF'] != final_outcomes['Player']) & (final_outcomes['UTIL'] != final_outcomes['Player']), final_outcomes['Player'], final_outcomes['F']) | |
final_outcomes['F'] = np.where((final_outcomes['SF_hard'] >= 2) & (final_outcomes['Player.1'].map(pos_dict) == 'SF') & (final_outcomes['SF'] != final_outcomes['Player.1']) & (final_outcomes['UTIL'] != final_outcomes['Player.1']), final_outcomes['Player.1'], final_outcomes['F']) | |
final_outcomes['F'] = np.where((final_outcomes['SF_hard'] >= 2) & (final_outcomes['Player.2'].map(pos_dict) == 'SF') & (final_outcomes['SF'] != final_outcomes['Player.2']) & (final_outcomes['UTIL'] != final_outcomes['Player.2']), final_outcomes['Player.2'], final_outcomes['F']) | |
final_outcomes['F'] = np.where((final_outcomes['SF_hard'] >= 2) & (final_outcomes['Player.3'].map(pos_dict) == 'SF') & (final_outcomes['SF'] != final_outcomes['Player.3']) & (final_outcomes['UTIL'] != final_outcomes['Player.3']), final_outcomes['Player.3'], final_outcomes['F']) | |
final_outcomes['F'] = np.where((final_outcomes['SF_hard'] >= 2) & (final_outcomes['Player.4'].map(pos_dict) == 'SF') & (final_outcomes['SF'] != final_outcomes['Player.4']) & (final_outcomes['UTIL'] != final_outcomes['Player.4']), final_outcomes['Player.4'], final_outcomes['F']) | |
final_outcomes['F'] = np.where((final_outcomes['SF_hard'] >= 2) & (final_outcomes['Player.5'].map(pos_dict) == 'SF') & (final_outcomes['SF'] != final_outcomes['Player.5']) & (final_outcomes['UTIL'] != final_outcomes['Player.5']), final_outcomes['Player.5'], final_outcomes['F']) | |
final_outcomes['F'] = np.where((final_outcomes['SF_hard'] >= 2) & (final_outcomes['Player.6'].map(pos_dict) == 'SF') & (final_outcomes['SF'] != final_outcomes['Player.6']) & (final_outcomes['UTIL'] != final_outcomes['Player.6']), final_outcomes['Player.6'], final_outcomes['F']) | |
final_outcomes['F'] = np.where((final_outcomes['SF_hard'] >= 2) & (final_outcomes['Player.7'].map(pos_dict) == 'SF') & (final_outcomes['SF'] != final_outcomes['Player.7']) & (final_outcomes['UTIL'] != final_outcomes['Player.7']), final_outcomes['Player.7'], final_outcomes['F']) | |
final_outcomes['UTIL'] = np.where((final_outcomes['PF_hard'] == 3) & (final_outcomes['Player'].map(pos_dict) == 'PF') & (final_outcomes['PF'] != final_outcomes['Player']), final_outcomes['Player'], final_outcomes['UTIL']) | |
final_outcomes['UTIL'] = np.where((final_outcomes['PF_hard'] == 3) & (final_outcomes['Player.1'].map(pos_dict) == 'PF') & (final_outcomes['PF'] != final_outcomes['Player.1']), final_outcomes['Player.1'], final_outcomes['UTIL']) | |
final_outcomes['UTIL'] = np.where((final_outcomes['PF_hard'] == 3) & (final_outcomes['Player.2'].map(pos_dict) == 'PF') & (final_outcomes['PF'] != final_outcomes['Player.2']), final_outcomes['Player.2'], final_outcomes['UTIL']) | |
final_outcomes['UTIL'] = np.where((final_outcomes['PF_hard'] == 3) & (final_outcomes['Player.3'].map(pos_dict) == 'PF') & (final_outcomes['PF'] != final_outcomes['Player.3']), final_outcomes['Player.3'], final_outcomes['UTIL']) | |
final_outcomes['UTIL'] = np.where((final_outcomes['PF_hard'] == 3) & (final_outcomes['Player.4'].map(pos_dict) == 'PF') & (final_outcomes['PF'] != final_outcomes['Player.4']), final_outcomes['Player.4'], final_outcomes['UTIL']) | |
final_outcomes['UTIL'] = np.where((final_outcomes['PF_hard'] == 3) & (final_outcomes['Player.5'].map(pos_dict) == 'PF') & (final_outcomes['PF'] != final_outcomes['Player.5']), final_outcomes['Player.5'], final_outcomes['UTIL']) | |
final_outcomes['UTIL'] = np.where((final_outcomes['PF_hard'] == 3) & (final_outcomes['Player.6'].map(pos_dict) == 'PF') & (final_outcomes['PF'] != final_outcomes['Player.6']), final_outcomes['Player.6'], final_outcomes['UTIL']) | |
final_outcomes['UTIL'] = np.where((final_outcomes['PF_hard'] == 3) & (final_outcomes['Player.7'].map(pos_dict) == 'PF') & (final_outcomes['PF'] != final_outcomes['Player.7']), final_outcomes['Player.7'], final_outcomes['UTIL']) | |
final_outcomes['F'] = np.where((final_outcomes['PF_hard'] >= 2) & (final_outcomes['Player'].map(pos_dict) == 'PF') & (final_outcomes['PF'] != final_outcomes['Player']) & (final_outcomes['UTIL'] != final_outcomes['Player']), final_outcomes['Player'], final_outcomes['F']) | |
final_outcomes['F'] = np.where((final_outcomes['PF_hard'] >= 2) & (final_outcomes['Player.1'].map(pos_dict) == 'PF') & (final_outcomes['PF'] != final_outcomes['Player.1']) & (final_outcomes['UTIL'] != final_outcomes['Player.1']), final_outcomes['Player.1'], final_outcomes['F']) | |
final_outcomes['F'] = np.where((final_outcomes['PF_hard'] >= 2) & (final_outcomes['Player.2'].map(pos_dict) == 'PF') & (final_outcomes['PF'] != final_outcomes['Player.2']) & (final_outcomes['UTIL'] != final_outcomes['Player.2']), final_outcomes['Player.2'], final_outcomes['F']) | |
final_outcomes['F'] = np.where((final_outcomes['PF_hard'] >= 2) & (final_outcomes['Player.3'].map(pos_dict) == 'PF') & (final_outcomes['PF'] != final_outcomes['Player.3']) & (final_outcomes['UTIL'] != final_outcomes['Player.3']), final_outcomes['Player.3'], final_outcomes['F']) | |
final_outcomes['F'] = np.where((final_outcomes['PF_hard'] >= 2) & (final_outcomes['Player.4'].map(pos_dict) == 'PF') & (final_outcomes['PF'] != final_outcomes['Player.4']) & (final_outcomes['UTIL'] != final_outcomes['Player.4']), final_outcomes['Player.4'], final_outcomes['F']) | |
final_outcomes['F'] = np.where((final_outcomes['PF_hard'] >= 2) & (final_outcomes['Player.5'].map(pos_dict) == 'PF') & (final_outcomes['PF'] != final_outcomes['Player.5']) & (final_outcomes['UTIL'] != final_outcomes['Player.5']), final_outcomes['Player.5'], final_outcomes['F']) | |
final_outcomes['F'] = np.where((final_outcomes['PF_hard'] >= 2) & (final_outcomes['Player.6'].map(pos_dict) == 'PF') & (final_outcomes['PF'] != final_outcomes['Player.6']) & (final_outcomes['UTIL'] != final_outcomes['Player.6']), final_outcomes['Player.6'], final_outcomes['F']) | |
final_outcomes['F'] = np.where((final_outcomes['PF_hard'] >= 2) & (final_outcomes['Player.7'].map(pos_dict) == 'PF') & (final_outcomes['PF'] != final_outcomes['Player.7']) & (final_outcomes['UTIL'] != final_outcomes['Player.7']), final_outcomes['Player.7'], final_outcomes['F']) | |
final_outcomes['UTIL'] = np.where((final_outcomes['two_c'] == 2) & (final_outcomes['Player'].map(pos_dict) == 'C') & (final_outcomes['C'] != final_outcomes['Player']), final_outcomes['Player'], final_outcomes['UTIL']) | |
final_outcomes['UTIL'] = np.where((final_outcomes['two_c'] == 2) & (final_outcomes['Player.1'].map(pos_dict) == 'C') & (final_outcomes['C'] != final_outcomes['Player.1']), final_outcomes['Player.1'], final_outcomes['UTIL']) | |
final_outcomes['UTIL'] = np.where((final_outcomes['two_c'] == 2) & (final_outcomes['Player.2'].map(pos_dict) == 'C') & (final_outcomes['C'] != final_outcomes['Player.2']), final_outcomes['Player.2'], final_outcomes['UTIL']) | |
final_outcomes['UTIL'] = np.where((final_outcomes['two_c'] == 2) & (final_outcomes['Player.3'].map(pos_dict) == 'C') & (final_outcomes['C'] != final_outcomes['Player.3']), final_outcomes['Player.3'], final_outcomes['UTIL']) | |
final_outcomes['UTIL'] = np.where((final_outcomes['two_c'] == 2) & (final_outcomes['Player.4'].map(pos_dict) == 'C') & (final_outcomes['C'] != final_outcomes['Player.4']), final_outcomes['Player.4'], final_outcomes['UTIL']) | |
final_outcomes['UTIL'] = np.where((final_outcomes['two_c'] == 2) & (final_outcomes['Player.5'].map(pos_dict) == 'C') & (final_outcomes['C'] != final_outcomes['Player.5']), final_outcomes['Player.5'], final_outcomes['UTIL']) | |
final_outcomes['UTIL'] = np.where((final_outcomes['two_c'] == 2) & (final_outcomes['Player.6'].map(pos_dict) == 'C') & (final_outcomes['C'] != final_outcomes['Player.6']), final_outcomes['Player.6'], final_outcomes['UTIL']) | |
final_outcomes['UTIL'] = np.where((final_outcomes['two_c'] == 2) & (final_outcomes['Player.7'].map(pos_dict) == 'C') & (final_outcomes['C'] != final_outcomes['Player.7']), final_outcomes['Player.7'], final_outcomes['UTIL']) | |
final_outcomes['PG'] = np.where((final_outcomes['Player'].map(pos_dict) == 'PG') & (final_outcomes['PG'] == 0), final_outcomes['Player'], final_outcomes['PG']) | |
final_outcomes['SG'] = np.where((final_outcomes['Player'].map(pos_dict) == 'SG') & (final_outcomes['SG'] == 0), final_outcomes['Player'], final_outcomes['SG']) | |
final_outcomes['SF'] = np.where((final_outcomes['Player'].map(pos_dict) == 'SF') & (final_outcomes['SF'] == 0), final_outcomes['Player'], final_outcomes['SF']) | |
final_outcomes['PF'] = np.where((final_outcomes['Player'].map(pos_dict) == 'PF') & (final_outcomes['PF'] == 0), final_outcomes['Player'], final_outcomes['PF']) | |
final_outcomes['C'] = np.where((final_outcomes['Player'].map(pos_dict) == 'C') & (final_outcomes['C'] == 0), final_outcomes['Player'], final_outcomes['C']) | |
final_outcomes['PG'] = np.where((final_outcomes['Player.1'].map(pos_dict) == 'PG') & (final_outcomes['PG'] == 0), final_outcomes['Player.1'], final_outcomes['PG']) | |
final_outcomes['SG'] = np.where((final_outcomes['Player.1'].map(pos_dict) == 'SG') & (final_outcomes['SG'] == 0), final_outcomes['Player.1'], final_outcomes['SG']) | |
final_outcomes['SF'] = np.where((final_outcomes['Player.1'].map(pos_dict) == 'SF') & (final_outcomes['SF'] == 0), final_outcomes['Player.1'], final_outcomes['SF']) | |
final_outcomes['PF'] = np.where((final_outcomes['Player.1'].map(pos_dict) == 'PF') & (final_outcomes['PF'] == 0), final_outcomes['Player.1'], final_outcomes['PF']) | |
final_outcomes['C'] = np.where((final_outcomes['Player.1'].map(pos_dict) == 'C') & (final_outcomes['C'] == 0), final_outcomes['Player.1'], final_outcomes['C']) | |
final_outcomes['PG'] = np.where((final_outcomes['Player.2'].map(pos_dict) == 'PG') & (final_outcomes['PG'] == 0), final_outcomes['Player.2'], final_outcomes['PG']) | |
final_outcomes['SG'] = np.where((final_outcomes['Player.2'].map(pos_dict) == 'SG') & (final_outcomes['SG'] == 0), final_outcomes['Player.2'], final_outcomes['SG']) | |
final_outcomes['SF'] = np.where((final_outcomes['Player.2'].map(pos_dict) == 'SF') & (final_outcomes['SF'] == 0), final_outcomes['Player.2'], final_outcomes['SF']) | |
final_outcomes['PF'] = np.where((final_outcomes['Player.2'].map(pos_dict) == 'PF') & (final_outcomes['PF'] == 0), final_outcomes['Player.2'], final_outcomes['PF']) | |
final_outcomes['C'] = np.where((final_outcomes['Player.2'].map(pos_dict) == 'C') & (final_outcomes['C'] == 0), final_outcomes['Player.2'], final_outcomes['C']) | |
final_outcomes['PG'] = np.where((final_outcomes['Player.3'].map(pos_dict) == 'PG') & (final_outcomes['PG'] == 0), final_outcomes['Player.3'], final_outcomes['PG']) | |
final_outcomes['SG'] = np.where((final_outcomes['Player.3'].map(pos_dict) == 'SG') & (final_outcomes['SG'] == 0), final_outcomes['Player.3'], final_outcomes['SG']) | |
final_outcomes['SF'] = np.where((final_outcomes['Player.3'].map(pos_dict) == 'SF') & (final_outcomes['SF'] == 0), final_outcomes['Player.3'], final_outcomes['SF']) | |
final_outcomes['PF'] = np.where((final_outcomes['Player.3'].map(pos_dict) == 'PF') & (final_outcomes['PF'] == 0), final_outcomes['Player.3'], final_outcomes['PF']) | |
final_outcomes['C'] = np.where((final_outcomes['Player.3'].map(pos_dict) == 'C') & (final_outcomes['C'] == 0), final_outcomes['Player.3'], final_outcomes['C']) | |
final_outcomes['PG'] = np.where((final_outcomes['Player.4'].map(pos_dict) == 'PG') & (final_outcomes['PG'] == 0), final_outcomes['Player.4'], final_outcomes['PG']) | |
final_outcomes['SG'] = np.where((final_outcomes['Player.4'].map(pos_dict) == 'SG') & (final_outcomes['SG'] == 0), final_outcomes['Player.4'], final_outcomes['SG']) | |
final_outcomes['SF'] = np.where((final_outcomes['Player.4'].map(pos_dict) == 'SF') & (final_outcomes['SF'] == 0), final_outcomes['Player.4'], final_outcomes['SF']) | |
final_outcomes['PF'] = np.where((final_outcomes['Player.4'].map(pos_dict) == 'PF') & (final_outcomes['PF'] == 0), final_outcomes['Player.4'], final_outcomes['PF']) | |
final_outcomes['C'] = np.where((final_outcomes['Player.4'].map(pos_dict) == 'C') & (final_outcomes['C'] == 0), final_outcomes['Player.4'], final_outcomes['C']) | |
final_outcomes['PG'] = np.where((final_outcomes['Player.5'].map(pos_dict) == 'PG') & (final_outcomes['PG'] == 0), final_outcomes['Player.5'], final_outcomes['PG']) | |
final_outcomes['SG'] = np.where((final_outcomes['Player.5'].map(pos_dict) == 'SG') & (final_outcomes['SG'] == 0), final_outcomes['Player.5'], final_outcomes['SG']) | |
final_outcomes['SF'] = np.where((final_outcomes['Player.5'].map(pos_dict) == 'SF') & (final_outcomes['SF'] == 0), final_outcomes['Player.5'], final_outcomes['SF']) | |
final_outcomes['PF'] = np.where((final_outcomes['Player.5'].map(pos_dict) == 'PF') & (final_outcomes['PF'] == 0), final_outcomes['Player.5'], final_outcomes['PF']) | |
final_outcomes['C'] = np.where((final_outcomes['Player.5'].map(pos_dict) == 'C') & (final_outcomes['C'] == 0), final_outcomes['Player.5'], final_outcomes['C']) | |
final_outcomes['PG'] = np.where((final_outcomes['Player.6'].map(pos_dict) == 'PG') & (final_outcomes['PG'] == 0), final_outcomes['Player.6'], final_outcomes['PG']) | |
final_outcomes['SG'] = np.where((final_outcomes['Player.6'].map(pos_dict) == 'SG') & (final_outcomes['SG'] == 0), final_outcomes['Player.6'], final_outcomes['SG']) | |
final_outcomes['SF'] = np.where((final_outcomes['Player.6'].map(pos_dict) == 'SF') & (final_outcomes['SF'] == 0), final_outcomes['Player.6'], final_outcomes['SF']) | |
final_outcomes['PF'] = np.where((final_outcomes['Player.6'].map(pos_dict) == 'PF') & (final_outcomes['PF'] == 0), final_outcomes['Player.6'], final_outcomes['PF']) | |
final_outcomes['C'] = np.where((final_outcomes['Player.6'].map(pos_dict) == 'C') & (final_outcomes['C'] == 0), final_outcomes['Player.6'], final_outcomes['C']) | |
final_outcomes['PG'] = np.where((final_outcomes['Player.7'].map(pos_dict) == 'PG') & (final_outcomes['PG'] == 0), final_outcomes['Player.7'], final_outcomes['PG']) | |
final_outcomes['SG'] = np.where((final_outcomes['Player.7'].map(pos_dict) == 'SG') & (final_outcomes['SG'] == 0), final_outcomes['Player.7'], final_outcomes['SG']) | |
final_outcomes['SF'] = np.where((final_outcomes['Player.7'].map(pos_dict) == 'SF') & (final_outcomes['SF'] == 0), final_outcomes['Player.7'], final_outcomes['SF']) | |
final_outcomes['PF'] = np.where((final_outcomes['Player.7'].map(pos_dict) == 'PF') & (final_outcomes['PF'] == 0), final_outcomes['Player.7'], final_outcomes['PF']) | |
final_outcomes['C'] = np.where((final_outcomes['Player.7'].map(pos_dict) == 'C') & (final_outcomes['C'] == 0), final_outcomes['Player.7'], final_outcomes['C']) | |
final_outcomes['SF'] = np.where((final_outcomes['SG/SF'] == 1) & (final_outcomes['SF/PF'] == 1) & (final_outcomes['PF_hard'] >= 1) & (final_outcomes['Player'].map(pos_dict) == 'SF/PF'), final_outcomes['Player'], final_outcomes['SF']) | |
final_outcomes['SF'] = np.where((final_outcomes['SG/SF'] == 1) & (final_outcomes['SF/PF'] == 1) & (final_outcomes['PF_hard'] >= 1) & (final_outcomes['Player.1'].map(pos_dict) == 'SF/PF'), final_outcomes['Player.1'], final_outcomes['SF']) | |
final_outcomes['SF'] = np.where((final_outcomes['SG/SF'] == 1) & (final_outcomes['SF/PF'] == 1) & (final_outcomes['PF_hard'] >= 1) & (final_outcomes['Player.2'].map(pos_dict) == 'SF/PF'), final_outcomes['Player.2'], final_outcomes['SF']) | |
final_outcomes['SF'] = np.where((final_outcomes['SG/SF'] == 1) & (final_outcomes['SF/PF'] == 1) & (final_outcomes['PF_hard'] >= 1) & (final_outcomes['Player.3'].map(pos_dict) == 'SF/PF'), final_outcomes['Player.3'], final_outcomes['SF']) | |
final_outcomes['SF'] = np.where((final_outcomes['SG/SF'] == 1) & (final_outcomes['SF/PF'] == 1) & (final_outcomes['PF_hard'] >= 1) & (final_outcomes['Player.4'].map(pos_dict) == 'SF/PF'), final_outcomes['Player.4'], final_outcomes['SF']) | |
final_outcomes['SF'] = np.where((final_outcomes['SG/SF'] == 1) & (final_outcomes['SF/PF'] == 1) & (final_outcomes['PF_hard'] >= 1) & (final_outcomes['Player.5'].map(pos_dict) == 'SF/PF'), final_outcomes['Player.5'], final_outcomes['SF']) | |
final_outcomes['SF'] = np.where((final_outcomes['SG/SF'] == 1) & (final_outcomes['SF/PF'] == 1) & (final_outcomes['PF_hard'] >= 1) & (final_outcomes['Player.6'].map(pos_dict) == 'SF/PF'), final_outcomes['Player.6'], final_outcomes['SF']) | |
final_outcomes['SF'] = np.where((final_outcomes['SG/SF'] == 1) & (final_outcomes['SF/PF'] == 1) & (final_outcomes['PF_hard'] >= 1) & (final_outcomes['Player.7'].map(pos_dict) == 'SF/PF'), final_outcomes['Player.7'], final_outcomes['SF']) | |
final_outcomes['PG'] = np.where((final_outcomes['PG-count'] == 1) & (final_outcomes['pos.1'].str.contains("PG")) & (final_outcomes['PG'] == 0), final_outcomes['Player'], final_outcomes['PG']) | |
final_outcomes['PG'] = np.where((final_outcomes['PG-count'] == 1) & (final_outcomes['pos.2'].str.contains("PG")) & (final_outcomes['PG'] == 0), final_outcomes['Player.1'], final_outcomes['PG']) | |
final_outcomes['PG'] = np.where((final_outcomes['PG-count'] == 1) & (final_outcomes['pos.3'].str.contains("PG")) & (final_outcomes['PG'] == 0), final_outcomes['Player.2'], final_outcomes['PG']) | |
final_outcomes['PG'] = np.where((final_outcomes['PG-count'] == 1) & (final_outcomes['pos.4'].str.contains("PG")) & (final_outcomes['PG'] == 0), final_outcomes['Player.3'], final_outcomes['PG']) | |
final_outcomes['PG'] = np.where((final_outcomes['PG-count'] == 1) & (final_outcomes['pos.5'].str.contains("PG")) & (final_outcomes['PG'] == 0), final_outcomes['Player.4'], final_outcomes['PG']) | |
final_outcomes['PG'] = np.where((final_outcomes['PG-count'] == 1) & (final_outcomes['pos.6'].str.contains("PG")) & (final_outcomes['PG'] == 0), final_outcomes['Player.5'], final_outcomes['PG']) | |
final_outcomes['PG'] = np.where((final_outcomes['PG-count'] == 1) & (final_outcomes['pos.7'].str.contains("PG")) & (final_outcomes['PG'] == 0), final_outcomes['Player.6'], final_outcomes['PG']) | |
final_outcomes['PG'] = np.where((final_outcomes['PG-count'] == 1) & (final_outcomes['pos.8'].str.contains("PG")) & (final_outcomes['PG'] == 0), final_outcomes['Player.7'], final_outcomes['PG']) | |
final_outcomes['SG'] = np.where((final_outcomes['SG-count'] == 1) & (final_outcomes['pos.1'].str.contains("SG")) & (final_outcomes['SG'] == 0), final_outcomes['Player'], final_outcomes['SG']) | |
final_outcomes['SG'] = np.where((final_outcomes['SG-count'] == 1) & (final_outcomes['pos.2'].str.contains("SG")) & (final_outcomes['SG'] == 0), final_outcomes['Player.1'], final_outcomes['SG']) | |
final_outcomes['SG'] = np.where((final_outcomes['SG-count'] == 1) & (final_outcomes['pos.3'].str.contains("SG")) & (final_outcomes['SG'] == 0), final_outcomes['Player.2'], final_outcomes['SG']) | |
final_outcomes['SG'] = np.where((final_outcomes['SG-count'] == 1) & (final_outcomes['pos.4'].str.contains("SG")) & (final_outcomes['SG'] == 0), final_outcomes['Player.3'], final_outcomes['SG']) | |
final_outcomes['SG'] = np.where((final_outcomes['SG-count'] == 1) & (final_outcomes['pos.5'].str.contains("SG")) & (final_outcomes['SG'] == 0), final_outcomes['Player.4'], final_outcomes['SG']) | |
final_outcomes['SG'] = np.where((final_outcomes['SG-count'] == 1) & (final_outcomes['pos.6'].str.contains("SG")) & (final_outcomes['SG'] == 0), final_outcomes['Player.5'], final_outcomes['SG']) | |
final_outcomes['SG'] = np.where((final_outcomes['SG-count'] == 1) & (final_outcomes['pos.7'].str.contains("SG")) & (final_outcomes['SG'] == 0), final_outcomes['Player.6'], final_outcomes['SG']) | |
final_outcomes['SG'] = np.where((final_outcomes['SG-count'] == 1) & (final_outcomes['pos.8'].str.contains("SG")) & (final_outcomes['SG'] == 0), final_outcomes['Player.7'], final_outcomes['SG']) | |
final_outcomes['SF'] = np.where((final_outcomes['SF-count'] == 1) & (final_outcomes['pos.1'].str.contains("SF")) & (final_outcomes['SF'] == 0), final_outcomes['Player'], final_outcomes['SF']) | |
final_outcomes['SF'] = np.where((final_outcomes['SF-count'] == 1) & (final_outcomes['pos.2'].str.contains("SF")) & (final_outcomes['SF'] == 0), final_outcomes['Player.1'], final_outcomes['SF']) | |
final_outcomes['SF'] = np.where((final_outcomes['SF-count'] == 1) & (final_outcomes['pos.3'].str.contains("SF")) & (final_outcomes['SF'] == 0), final_outcomes['Player.2'], final_outcomes['SF']) | |
final_outcomes['SF'] = np.where((final_outcomes['SF-count'] == 1) & (final_outcomes['pos.4'].str.contains("SF")) & (final_outcomes['SF'] == 0), final_outcomes['Player.3'], final_outcomes['SF']) | |
final_outcomes['SF'] = np.where((final_outcomes['SF-count'] == 1) & (final_outcomes['pos.5'].str.contains("SF")) & (final_outcomes['SF'] == 0), final_outcomes['Player.4'], final_outcomes['SF']) | |
final_outcomes['SF'] = np.where((final_outcomes['SF-count'] == 1) & (final_outcomes['pos.6'].str.contains("SF")) & (final_outcomes['SF'] == 0), final_outcomes['Player.5'], final_outcomes['SF']) | |
final_outcomes['SF'] = np.where((final_outcomes['SF-count'] == 1) & (final_outcomes['pos.7'].str.contains("SF")) & (final_outcomes['SF'] == 0), final_outcomes['Player.6'], final_outcomes['SF']) | |
final_outcomes['SF'] = np.where((final_outcomes['SF-count'] == 1) & (final_outcomes['pos.8'].str.contains("SF")) & (final_outcomes['SF'] == 0), final_outcomes['Player.7'], final_outcomes['SF']) | |
final_outcomes['PF'] = np.where((final_outcomes['PF-count'] == 1) & (final_outcomes['pos.1'].str.contains("PF")) & (final_outcomes['PF'] == 0) & (final_outcomes['C'] != final_outcomes['Player']), final_outcomes['Player'], final_outcomes['PF']) | |
final_outcomes['PF'] = np.where((final_outcomes['PF-count'] == 1) & (final_outcomes['pos.2'].str.contains("PF")) & (final_outcomes['PF'] == 0) & (final_outcomes['C'] != final_outcomes['Player']), final_outcomes['Player.1'], final_outcomes['PF']) | |
final_outcomes['PF'] = np.where((final_outcomes['PF-count'] == 1) & (final_outcomes['pos.3'].str.contains("PF")) & (final_outcomes['PF'] == 0) & (final_outcomes['C'] != final_outcomes['Player']), final_outcomes['Player.2'], final_outcomes['PF']) | |
final_outcomes['PF'] = np.where((final_outcomes['PF-count'] == 1) & (final_outcomes['pos.4'].str.contains("PF")) & (final_outcomes['PF'] == 0) & (final_outcomes['C'] != final_outcomes['Player']), final_outcomes['Player.3'], final_outcomes['PF']) | |
final_outcomes['PF'] = np.where((final_outcomes['PF-count'] == 1) & (final_outcomes['pos.5'].str.contains("PF")) & (final_outcomes['PF'] == 0) & (final_outcomes['C'] != final_outcomes['Player']), final_outcomes['Player.4'], final_outcomes['PF']) | |
final_outcomes['PF'] = np.where((final_outcomes['PF-count'] == 1) & (final_outcomes['pos.6'].str.contains("PF")) & (final_outcomes['PF'] == 0) & (final_outcomes['C'] != final_outcomes['Player']), final_outcomes['Player.5'], final_outcomes['PF']) | |
final_outcomes['PF'] = np.where((final_outcomes['PF-count'] == 1) & (final_outcomes['pos.7'].str.contains("PF")) & (final_outcomes['PF'] == 0) & (final_outcomes['C'] != final_outcomes['Player']), final_outcomes['Player.6'], final_outcomes['PF']) | |
final_outcomes['PF'] = np.where((final_outcomes['PF-count'] == 1) & (final_outcomes['pos.8'].str.contains("PF")) & (final_outcomes['PF'] == 0) & (final_outcomes['C'] != final_outcomes['Player']), final_outcomes['Player.7'], final_outcomes['PF']) | |
# #---------- AFTER CHECKING FOR SINGLE INSTANCE POSITIONS ----------# | |
final_outcomes['PG'] = np.where((final_outcomes['pos.1'].str.contains("PG")) & (final_outcomes['pos.1'] == "PG/SG") & (final_outcomes['PG'] == 0), final_outcomes['Player'], final_outcomes['PG']) | |
final_outcomes['PG'] = np.where((final_outcomes['pos.2'].str.contains("PG")) & (final_outcomes['pos.2'] == "PG/SG") & (final_outcomes['PG'] == 0), final_outcomes['Player.1'], final_outcomes['PG']) | |
final_outcomes['PG'] = np.where((final_outcomes['pos.3'].str.contains("PG")) & (final_outcomes['pos.3'] == "PG/SG") & (final_outcomes['PG'] == 0), final_outcomes['Player.2'], final_outcomes['PG']) | |
final_outcomes['PG'] = np.where((final_outcomes['pos.4'].str.contains("PG")) & (final_outcomes['pos.4'] == "PG/SG") & (final_outcomes['PG'] == 0), final_outcomes['Player.3'], final_outcomes['PG']) | |
final_outcomes['PG'] = np.where((final_outcomes['pos.5'].str.contains("PG")) & (final_outcomes['pos.5'] == "PG/SG") & (final_outcomes['PG'] == 0), final_outcomes['Player.4'], final_outcomes['PG']) | |
final_outcomes['PG'] = np.where((final_outcomes['pos.6'].str.contains("PG")) & (final_outcomes['pos.6'] == "PG/SG") & (final_outcomes['PG'] == 0), final_outcomes['Player.5'], final_outcomes['PG']) | |
final_outcomes['PG'] = np.where((final_outcomes['pos.7'].str.contains("PG")) & (final_outcomes['pos.7'] == "PG/SG") & (final_outcomes['PG'] == 0), final_outcomes['Player.6'], final_outcomes['PG']) | |
final_outcomes['PG'] = np.where((final_outcomes['pos.8'].str.contains("PG")) & (final_outcomes['pos.8'] == "PG/SG") & (final_outcomes['PG'] == 0), final_outcomes['Player.7'], final_outcomes['PG']) | |
final_outcomes['SG'] = np.where((final_outcomes['pos.1'].str.contains("SG")) & (final_outcomes['pos.1'] == "PG/SG") & (final_outcomes['SG'] == 0) & (final_outcomes['PG'] != final_outcomes['Player']), final_outcomes['Player'], final_outcomes['SG']) | |
final_outcomes['SG'] = np.where((final_outcomes['pos.2'].str.contains("SG")) & (final_outcomes['pos.2'] == "PG/SG") & (final_outcomes['SG'] == 0) & (final_outcomes['PG'] != final_outcomes['Player.1']), final_outcomes['Player.1'], final_outcomes['SG']) | |
final_outcomes['SG'] = np.where((final_outcomes['pos.3'].str.contains("SG")) & (final_outcomes['pos.3'] == "PG/SG") & (final_outcomes['SG'] == 0) & (final_outcomes['PG'] != final_outcomes['Player.2']), final_outcomes['Player.2'], final_outcomes['SG']) | |
final_outcomes['SG'] = np.where((final_outcomes['pos.4'].str.contains("SG")) & (final_outcomes['pos.4'] == "PG/SG") & (final_outcomes['SG'] == 0) & (final_outcomes['PG'] != final_outcomes['Player.3']), final_outcomes['Player.3'], final_outcomes['SG']) | |
final_outcomes['SG'] = np.where((final_outcomes['pos.5'].str.contains("SG")) & (final_outcomes['pos.5'] == "PG/SG") & (final_outcomes['SG'] == 0) & (final_outcomes['PG'] != final_outcomes['Player.4']), final_outcomes['Player.4'], final_outcomes['SG']) | |
final_outcomes['SG'] = np.where((final_outcomes['pos.6'].str.contains("SG")) & (final_outcomes['pos.6'] == "PG/SG") & (final_outcomes['SG'] == 0) & (final_outcomes['PG'] != final_outcomes['Player.5']), final_outcomes['Player.5'], final_outcomes['SG']) | |
final_outcomes['SG'] = np.where((final_outcomes['pos.7'].str.contains("SG")) & (final_outcomes['pos.7'] == "PG/SG") & (final_outcomes['SG'] == 0) & (final_outcomes['PG'] != final_outcomes['Player.6']), final_outcomes['Player.6'], final_outcomes['SG']) | |
final_outcomes['SG'] = np.where((final_outcomes['pos.8'].str.contains("SG")) & (final_outcomes['pos.8'] == "PG/SG") & (final_outcomes['SG'] == 0) & (final_outcomes['PG'] != final_outcomes['Player.7']), final_outcomes['Player.7'], final_outcomes['SG']) | |
final_outcomes['SG'] = np.where((final_outcomes['pos.1'].str.contains("SG")) & (final_outcomes['SG'] == 0) & (final_outcomes['PG'] != final_outcomes['Player']), final_outcomes['Player'], final_outcomes['SG']) | |
final_outcomes['SG'] = np.where((final_outcomes['pos.2'].str.contains("SG")) & (final_outcomes['SG'] == 0) & (final_outcomes['PG'] != final_outcomes['Player.1']), final_outcomes['Player.1'], final_outcomes['SG']) | |
final_outcomes['SG'] = np.where((final_outcomes['pos.3'].str.contains("SG")) & (final_outcomes['SG'] == 0) & (final_outcomes['PG'] != final_outcomes['Player.2']), final_outcomes['Player.2'], final_outcomes['SG']) | |
final_outcomes['SG'] = np.where((final_outcomes['pos.4'].str.contains("SG")) & (final_outcomes['SG'] == 0) & (final_outcomes['PG'] != final_outcomes['Player.3']), final_outcomes['Player.3'], final_outcomes['SG']) | |
final_outcomes['SG'] = np.where((final_outcomes['pos.5'].str.contains("SG")) & (final_outcomes['SG'] == 0) & (final_outcomes['PG'] != final_outcomes['Player.4']), final_outcomes['Player.4'], final_outcomes['SG']) | |
final_outcomes['SG'] = np.where((final_outcomes['pos.6'].str.contains("SG")) & (final_outcomes['SG'] == 0) & (final_outcomes['PG'] != final_outcomes['Player.5']), final_outcomes['Player.5'], final_outcomes['SG']) | |
final_outcomes['SG'] = np.where((final_outcomes['pos.7'].str.contains("SG")) & (final_outcomes['SG'] == 0) & (final_outcomes['PG'] != final_outcomes['Player.6']), final_outcomes['Player.6'], final_outcomes['SG']) | |
final_outcomes['SG'] = np.where((final_outcomes['pos.8'].str.contains("SG")) & (final_outcomes['SG'] == 0) & (final_outcomes['PG'] != final_outcomes['Player.7']), final_outcomes['Player.7'], final_outcomes['SG']) | |
final_outcomes['SF'] = np.where((final_outcomes['pos.1'] == ("SG/SF")) & (final_outcomes['SF'] == 0) & (final_outcomes['SG'] != final_outcomes['Player']), final_outcomes['Player'], final_outcomes['SF']) | |
final_outcomes['SF'] = np.where((final_outcomes['pos.2'] == ("SG/SF")) & (final_outcomes['SF'] == 0) & (final_outcomes['SG'] != final_outcomes['Player.1']), final_outcomes['Player.1'], final_outcomes['SF']) | |
final_outcomes['SF'] = np.where((final_outcomes['pos.3'] == ("SG/SF")) & (final_outcomes['SF'] == 0) & (final_outcomes['SG'] != final_outcomes['Player.2']), final_outcomes['Player.2'], final_outcomes['SF']) | |
final_outcomes['SF'] = np.where((final_outcomes['pos.4'] == ("SG/SF")) & (final_outcomes['SF'] == 0) & (final_outcomes['SG'] != final_outcomes['Player.3']), final_outcomes['Player.3'], final_outcomes['SF']) | |
final_outcomes['SF'] = np.where((final_outcomes['pos.5'] == ("SG/SF")) & (final_outcomes['SF'] == 0) & (final_outcomes['SG'] != final_outcomes['Player.4']), final_outcomes['Player.4'], final_outcomes['SF']) | |
final_outcomes['SF'] = np.where((final_outcomes['pos.6'] == ("SG/SF")) & (final_outcomes['SF'] == 0) & (final_outcomes['SG'] != final_outcomes['Player.5']), final_outcomes['Player.5'], final_outcomes['SF']) | |
final_outcomes['SF'] = np.where((final_outcomes['pos.7'] == ("SG/SF")) & (final_outcomes['SF'] == 0) & (final_outcomes['SG'] != final_outcomes['Player.6']), final_outcomes['Player.6'], final_outcomes['SF']) | |
final_outcomes['SF'] = np.where((final_outcomes['pos.8'] == ("SG/SF")) & (final_outcomes['SF'] == 0) & (final_outcomes['SG'] != final_outcomes['Player.7']), final_outcomes['Player.7'], final_outcomes['SF']) | |
final_outcomes['SF'] = np.where((final_outcomes['pos.1'] == ("SF/PF")) & (final_outcomes['PF_hard'] == 1) & (final_outcomes['SF'] == 0), final_outcomes['Player'], final_outcomes['SF']) | |
final_outcomes['SF'] = np.where((final_outcomes['pos.2'] == ("SF/PF")) & (final_outcomes['PF_hard'] == 1) & (final_outcomes['SF'] == 0), final_outcomes['Player.1'], final_outcomes['SF']) | |
final_outcomes['SF'] = np.where((final_outcomes['pos.3'] == ("SF/PF")) & (final_outcomes['PF_hard'] == 1) & (final_outcomes['SF'] == 0), final_outcomes['Player.2'], final_outcomes['SF']) | |
final_outcomes['SF'] = np.where((final_outcomes['pos.4'] == ("SF/PF")) & (final_outcomes['PF_hard'] == 1) & (final_outcomes['SF'] == 0), final_outcomes['Player.3'], final_outcomes['SF']) | |
final_outcomes['SF'] = np.where((final_outcomes['pos.5'] == ("SF/PF")) & (final_outcomes['PF_hard'] == 1) & (final_outcomes['SF'] == 0), final_outcomes['Player.4'], final_outcomes['SF']) | |
final_outcomes['SF'] = np.where((final_outcomes['pos.6'] == ("SF/PF")) & (final_outcomes['PF_hard'] == 1) & (final_outcomes['SF'] == 0), final_outcomes['Player.5'], final_outcomes['SF']) | |
final_outcomes['SF'] = np.where((final_outcomes['pos.7'] == ("SF/PF")) & (final_outcomes['PF_hard'] == 1) & (final_outcomes['SF'] == 0), final_outcomes['Player.6'], final_outcomes['SF']) | |
final_outcomes['SF'] = np.where((final_outcomes['pos.8'] == ("SF/PF")) & (final_outcomes['PF_hard'] == 1) & (final_outcomes['SF'] == 0), final_outcomes['Player.7'], final_outcomes['SF']) | |
final_outcomes['SF'] = np.where((final_outcomes['pos.1'] == ("SF/PF")) & (final_outcomes['C-count'] == 4) & (final_outcomes['SF'] == 0), final_outcomes['Player'], final_outcomes['SF']) | |
final_outcomes['SF'] = np.where((final_outcomes['pos.2'] == ("SF/PF")) & (final_outcomes['C-count'] == 4) & (final_outcomes['SF'] == 0), final_outcomes['Player.1'], final_outcomes['SF']) | |
final_outcomes['SF'] = np.where((final_outcomes['pos.3'] == ("SF/PF")) & (final_outcomes['C-count'] == 4) & (final_outcomes['SF'] == 0), final_outcomes['Player.2'], final_outcomes['SF']) | |
final_outcomes['SF'] = np.where((final_outcomes['pos.4'] == ("SF/PF")) & (final_outcomes['C-count'] == 4) & (final_outcomes['SF'] == 0), final_outcomes['Player.3'], final_outcomes['SF']) | |
final_outcomes['SF'] = np.where((final_outcomes['pos.5'] == ("SF/PF")) & (final_outcomes['C-count'] == 4) & (final_outcomes['SF'] == 0), final_outcomes['Player.4'], final_outcomes['SF']) | |
final_outcomes['SF'] = np.where((final_outcomes['pos.6'] == ("SF/PF")) & (final_outcomes['C-count'] == 4) & (final_outcomes['SF'] == 0), final_outcomes['Player.5'], final_outcomes['SF']) | |
final_outcomes['SF'] = np.where((final_outcomes['pos.7'] == ("SF/PF")) & (final_outcomes['C-count'] == 4) & (final_outcomes['SF'] == 0), final_outcomes['Player.6'], final_outcomes['SF']) | |
final_outcomes['SF'] = np.where((final_outcomes['pos.8'] == ("SF/PF")) & (final_outcomes['C-count'] == 4) & (final_outcomes['SF'] == 0), final_outcomes['Player.7'], final_outcomes['SF']) | |
final_outcomes['SF'] = np.where((final_outcomes['pos.1'].str.contains("SF")) & (final_outcomes['SF'] == 0) & (final_outcomes['SG'] != final_outcomes['Player']) & (final_outcomes['PG'] != final_outcomes['Player']), final_outcomes['Player'], final_outcomes['SF']) | |
final_outcomes['SF'] = np.where((final_outcomes['pos.2'].str.contains("SF")) & (final_outcomes['SF'] == 0) & (final_outcomes['SG'] != final_outcomes['Player.1']) & (final_outcomes['PG'] != final_outcomes['Player.1']), final_outcomes['Player.1'], final_outcomes['SF']) | |
final_outcomes['SF'] = np.where((final_outcomes['pos.3'].str.contains("SF")) & (final_outcomes['SF'] == 0) & (final_outcomes['SG'] != final_outcomes['Player.2']) & (final_outcomes['PG'] != final_outcomes['Player.2']), final_outcomes['Player.2'], final_outcomes['SF']) | |
final_outcomes['SF'] = np.where((final_outcomes['pos.4'].str.contains("SF")) & (final_outcomes['SF'] == 0) & (final_outcomes['SG'] != final_outcomes['Player.3']) & (final_outcomes['PG'] != final_outcomes['Player.3']), final_outcomes['Player.3'], final_outcomes['SF']) | |
final_outcomes['SF'] = np.where((final_outcomes['pos.5'].str.contains("SF")) & (final_outcomes['SF'] == 0) & (final_outcomes['SG'] != final_outcomes['Player.4']) & (final_outcomes['PG'] != final_outcomes['Player.4']), final_outcomes['Player.4'], final_outcomes['SF']) | |
final_outcomes['SF'] = np.where((final_outcomes['pos.6'].str.contains("SF")) & (final_outcomes['SF'] == 0) & (final_outcomes['SG'] != final_outcomes['Player.5']) & (final_outcomes['PG'] != final_outcomes['Player.5']), final_outcomes['Player.5'], final_outcomes['SF']) | |
final_outcomes['SF'] = np.where((final_outcomes['pos.7'].str.contains("SF")) & (final_outcomes['SF'] == 0) & (final_outcomes['SG'] != final_outcomes['Player.6']) & (final_outcomes['PG'] != final_outcomes['Player.6']), final_outcomes['Player.6'], final_outcomes['SF']) | |
final_outcomes['SF'] = np.where((final_outcomes['pos.8'].str.contains("SF")) & (final_outcomes['SF'] == 0) & (final_outcomes['SG'] != final_outcomes['Player.7']) & (final_outcomes['PG'] != final_outcomes['Player.7']), final_outcomes['Player.7'], final_outcomes['SF']) | |
final_outcomes['PF'] = np.where((final_outcomes['pos.1'].str.contains("PF")) & (final_outcomes['PF'] == 0) & (final_outcomes['SF'] != final_outcomes['Player']) & (final_outcomes['C'] != final_outcomes['Player']), final_outcomes['Player'], final_outcomes['PF']) | |
final_outcomes['PF'] = np.where((final_outcomes['pos.2'].str.contains("PF")) & (final_outcomes['PF'] == 0) & (final_outcomes['SF'] != final_outcomes['Player.1']) & (final_outcomes['C'] != final_outcomes['Player.1']), final_outcomes['Player.1'], final_outcomes['PF']) | |
final_outcomes['PF'] = np.where((final_outcomes['pos.3'].str.contains("PF")) & (final_outcomes['PF'] == 0) & (final_outcomes['SF'] != final_outcomes['Player.2']) & (final_outcomes['C'] != final_outcomes['Player.2']), final_outcomes['Player.2'], final_outcomes['PF']) | |
final_outcomes['PF'] = np.where((final_outcomes['pos.4'].str.contains("PF")) & (final_outcomes['PF'] == 0) & (final_outcomes['SF'] != final_outcomes['Player.3']) & (final_outcomes['C'] != final_outcomes['Player.3']), final_outcomes['Player.3'], final_outcomes['PF']) | |
final_outcomes['PF'] = np.where((final_outcomes['pos.5'].str.contains("PF")) & (final_outcomes['PF'] == 0) & (final_outcomes['SF'] != final_outcomes['Player.4']) & (final_outcomes['C'] != final_outcomes['Player.4']), final_outcomes['Player.4'], final_outcomes['PF']) | |
final_outcomes['PF'] = np.where((final_outcomes['pos.6'].str.contains("PF")) & (final_outcomes['PF'] == 0) & (final_outcomes['SF'] != final_outcomes['Player.5']) & (final_outcomes['C'] != final_outcomes['Player.5']), final_outcomes['Player.5'], final_outcomes['PF']) | |
final_outcomes['PF'] = np.where((final_outcomes['pos.7'].str.contains("PF")) & (final_outcomes['PF'] == 0) & (final_outcomes['SF'] != final_outcomes['Player.6']) & (final_outcomes['C'] != final_outcomes['Player.6']), final_outcomes['Player.6'], final_outcomes['PF']) | |
final_outcomes['PF'] = np.where((final_outcomes['pos.8'].str.contains("PF")) & (final_outcomes['PF'] == 0) & (final_outcomes['SF'] != final_outcomes['Player.7']) & (final_outcomes['C'] != final_outcomes['Player.7']), final_outcomes['Player.7'], final_outcomes['PF']) | |
final_outcomes['C'] = np.where((final_outcomes['pos.1'].str.contains("C")) & (final_outcomes['C'] == 0) & (final_outcomes['PF'] != final_outcomes['Player']), final_outcomes['Player'], final_outcomes['C']) | |
final_outcomes['C'] = np.where((final_outcomes['pos.2'].str.contains("C")) & (final_outcomes['C'] == 0) & (final_outcomes['PF'] != final_outcomes['Player.1']), final_outcomes['Player.1'], final_outcomes['C']) | |
final_outcomes['C'] = np.where((final_outcomes['pos.3'].str.contains("C")) & (final_outcomes['C'] == 0) & (final_outcomes['PF'] != final_outcomes['Player.2']), final_outcomes['Player.2'], final_outcomes['C']) | |
final_outcomes['C'] = np.where((final_outcomes['pos.4'].str.contains("C")) & (final_outcomes['C'] == 0) & (final_outcomes['PF'] != final_outcomes['Player.3']), final_outcomes['Player.3'], final_outcomes['C']) | |
final_outcomes['C'] = np.where((final_outcomes['pos.5'].str.contains("C")) & (final_outcomes['C'] == 0) & (final_outcomes['PF'] != final_outcomes['Player.4']), final_outcomes['Player.4'], final_outcomes['C']) | |
final_outcomes['C'] = np.where((final_outcomes['pos.6'].str.contains("C")) & (final_outcomes['C'] == 0) & (final_outcomes['PF'] != final_outcomes['Player.5']), final_outcomes['Player.5'], final_outcomes['C']) | |
final_outcomes['C'] = np.where((final_outcomes['pos.7'].str.contains("C")) & (final_outcomes['C'] == 0) & (final_outcomes['PF'] != final_outcomes['Player.6']), final_outcomes['Player.6'], final_outcomes['C']) | |
final_outcomes['C'] = np.where((final_outcomes['pos.8'].str.contains("C")) & (final_outcomes['C'] == 0) & (final_outcomes['PF'] != final_outcomes['Player.7']), final_outcomes['Player.7'], final_outcomes['C']) | |
#---------- AFTER UNIQUE POSITIONS ARE FILLED ----------# | |
final_outcomes['G'] = np.where((final_outcomes['pos.1'].str.contains("G")) & (~final_outcomes['pos.1'].str.contains("F")) & (final_outcomes['G'] == 0) & (final_outcomes['PG'] != final_outcomes['Player']) & (final_outcomes['SG'] != final_outcomes['Player']) & (final_outcomes['SF'] != final_outcomes['Player']) & (final_outcomes['PF'] != final_outcomes['Player']) & (final_outcomes['C'] != final_outcomes['Player']), final_outcomes['Player'], final_outcomes['G']) | |
final_outcomes['G'] = np.where((final_outcomes['pos.2'].str.contains("G")) & (~final_outcomes['pos.2'].str.contains("F")) & (final_outcomes['G'] == 0) & (final_outcomes['PG'] != final_outcomes['Player.1']) & (final_outcomes['SG'] != final_outcomes['Player.1']) & (final_outcomes['SF'] != final_outcomes['Player.1']) & (final_outcomes['PF'] != final_outcomes['Player.1']) & (final_outcomes['C'] != final_outcomes['Player.1']), final_outcomes['Player.1'], final_outcomes['G']) | |
final_outcomes['G'] = np.where((final_outcomes['pos.3'].str.contains("G")) & (~final_outcomes['pos.3'].str.contains("F")) & (final_outcomes['G'] == 0) & (final_outcomes['PG'] != final_outcomes['Player.2']) & (final_outcomes['SG'] != final_outcomes['Player.2']) & (final_outcomes['SF'] != final_outcomes['Player.2']) & (final_outcomes['PF'] != final_outcomes['Player.2']) & (final_outcomes['C'] != final_outcomes['Player.2']), final_outcomes['Player.2'], final_outcomes['G']) | |
final_outcomes['G'] = np.where((final_outcomes['pos.4'].str.contains("G")) & (~final_outcomes['pos.4'].str.contains("F")) & (final_outcomes['G'] == 0) & (final_outcomes['PG'] != final_outcomes['Player.3']) & (final_outcomes['SG'] != final_outcomes['Player.3']) & (final_outcomes['SF'] != final_outcomes['Player.3']) & (final_outcomes['PF'] != final_outcomes['Player.3']) & (final_outcomes['C'] != final_outcomes['Player.3']), final_outcomes['Player.3'], final_outcomes['G']) | |
final_outcomes['G'] = np.where((final_outcomes['pos.5'].str.contains("G")) & (~final_outcomes['pos.5'].str.contains("F")) & (final_outcomes['G'] == 0) & (final_outcomes['PG'] != final_outcomes['Player.4']) & (final_outcomes['SG'] != final_outcomes['Player.4']) & (final_outcomes['SF'] != final_outcomes['Player.4']) & (final_outcomes['PF'] != final_outcomes['Player.4']) & (final_outcomes['C'] != final_outcomes['Player.4']), final_outcomes['Player.4'], final_outcomes['G']) | |
final_outcomes['G'] = np.where((final_outcomes['pos.6'].str.contains("G")) & (~final_outcomes['pos.6'].str.contains("F")) & (final_outcomes['G'] == 0) & (final_outcomes['PG'] != final_outcomes['Player.5']) & (final_outcomes['SG'] != final_outcomes['Player.5']) & (final_outcomes['SF'] != final_outcomes['Player.5']) & (final_outcomes['PF'] != final_outcomes['Player.5']) & (final_outcomes['C'] != final_outcomes['Player.5']), final_outcomes['Player.5'], final_outcomes['G']) | |
final_outcomes['G'] = np.where((final_outcomes['pos.7'].str.contains("G")) & (~final_outcomes['pos.7'].str.contains("F")) & (final_outcomes['G'] == 0) & (final_outcomes['PG'] != final_outcomes['Player.6']) & (final_outcomes['SG'] != final_outcomes['Player.6']) & (final_outcomes['SF'] != final_outcomes['Player.6']) & (final_outcomes['PF'] != final_outcomes['Player.6']) & (final_outcomes['C'] != final_outcomes['Player.6']), final_outcomes['Player.6'], final_outcomes['G']) | |
final_outcomes['G'] = np.where((final_outcomes['pos.8'].str.contains("G")) & (~final_outcomes['pos.8'].str.contains("F")) & (final_outcomes['G'] == 0) & (final_outcomes['PG'] != final_outcomes['Player.7']) & (final_outcomes['SG'] != final_outcomes['Player.7']) & (final_outcomes['SF'] != final_outcomes['Player.7']) & (final_outcomes['PF'] != final_outcomes['Player.7']) & (final_outcomes['C'] != final_outcomes['Player.7']), final_outcomes['Player.7'], final_outcomes['G']) | |
final_outcomes['G'] = np.where((final_outcomes['pos.1'].str.contains("G")) & (final_outcomes['G'] == 0) & (final_outcomes['PG'] != final_outcomes['Player']) & (final_outcomes['SG'] != final_outcomes['Player']) & (final_outcomes['SF'] != final_outcomes['Player']) & (final_outcomes['PF'] != final_outcomes['Player']) & (final_outcomes['C'] != final_outcomes['Player']), final_outcomes['Player'], final_outcomes['G']) | |
final_outcomes['G'] = np.where((final_outcomes['pos.2'].str.contains("G")) & (final_outcomes['G'] == 0) & (final_outcomes['PG'] != final_outcomes['Player.1']) & (final_outcomes['SG'] != final_outcomes['Player.1']) & (final_outcomes['SF'] != final_outcomes['Player.1']) & (final_outcomes['PF'] != final_outcomes['Player.1']) & (final_outcomes['C'] != final_outcomes['Player.1']), final_outcomes['Player.1'], final_outcomes['G']) | |
final_outcomes['G'] = np.where((final_outcomes['pos.3'].str.contains("G")) & (final_outcomes['G'] == 0) & (final_outcomes['PG'] != final_outcomes['Player.2']) & (final_outcomes['SG'] != final_outcomes['Player.2']) & (final_outcomes['SF'] != final_outcomes['Player.2']) & (final_outcomes['PF'] != final_outcomes['Player.2']) & (final_outcomes['C'] != final_outcomes['Player.2']), final_outcomes['Player.2'], final_outcomes['G']) | |
final_outcomes['G'] = np.where((final_outcomes['pos.4'].str.contains("G")) & (final_outcomes['G'] == 0) & (final_outcomes['PG'] != final_outcomes['Player.3']) & (final_outcomes['SG'] != final_outcomes['Player.3']) & (final_outcomes['SF'] != final_outcomes['Player.3']) & (final_outcomes['PF'] != final_outcomes['Player.3']) & (final_outcomes['C'] != final_outcomes['Player.3']), final_outcomes['Player.3'], final_outcomes['G']) | |
final_outcomes['G'] = np.where((final_outcomes['pos.5'].str.contains("G")) & (final_outcomes['G'] == 0) & (final_outcomes['PG'] != final_outcomes['Player.4']) & (final_outcomes['SG'] != final_outcomes['Player.4']) & (final_outcomes['SF'] != final_outcomes['Player.4']) & (final_outcomes['PF'] != final_outcomes['Player.4']) & (final_outcomes['C'] != final_outcomes['Player.4']), final_outcomes['Player.4'], final_outcomes['G']) | |
final_outcomes['G'] = np.where((final_outcomes['pos.6'].str.contains("G")) & (final_outcomes['G'] == 0) & (final_outcomes['PG'] != final_outcomes['Player.5']) & (final_outcomes['SG'] != final_outcomes['Player.5']) & (final_outcomes['SF'] != final_outcomes['Player.5']) & (final_outcomes['PF'] != final_outcomes['Player.5']) & (final_outcomes['C'] != final_outcomes['Player.5']), final_outcomes['Player.5'], final_outcomes['G']) | |
final_outcomes['G'] = np.where((final_outcomes['pos.7'].str.contains("G")) & (final_outcomes['G'] == 0) & (final_outcomes['PG'] != final_outcomes['Player.6']) & (final_outcomes['SG'] != final_outcomes['Player.6']) & (final_outcomes['SF'] != final_outcomes['Player.6']) & (final_outcomes['PF'] != final_outcomes['Player.6']) & (final_outcomes['C'] != final_outcomes['Player.6']), final_outcomes['Player.6'], final_outcomes['G']) | |
final_outcomes['G'] = np.where((final_outcomes['pos.8'].str.contains("G")) & (final_outcomes['G'] == 0) & (final_outcomes['PG'] != final_outcomes['Player.7']) & (final_outcomes['SG'] != final_outcomes['Player.7']) & (final_outcomes['SF'] != final_outcomes['Player.7']) & (final_outcomes['PF'] != final_outcomes['Player.7']) & (final_outcomes['C'] != final_outcomes['Player.7']), final_outcomes['Player.7'], final_outcomes['G']) | |
final_outcomes['F'] = np.where((final_outcomes['pos.1'].str.contains("F")) & (~final_outcomes['pos.1'].str.contains("G")) & (final_outcomes['F'] == 0) & (final_outcomes['G'] != final_outcomes['Player']) & (final_outcomes['PG'] != final_outcomes['Player']) & (final_outcomes['SG'] != final_outcomes['Player']) & (final_outcomes['SF'] != final_outcomes['Player']) & (final_outcomes['PF'] != final_outcomes['Player']) & (final_outcomes['C'] != final_outcomes['Player']), final_outcomes['Player'], final_outcomes['F']) | |
final_outcomes['F'] = np.where((final_outcomes['pos.2'].str.contains("F")) & (~final_outcomes['pos.2'].str.contains("G")) & (final_outcomes['F'] == 0) & (final_outcomes['G'] != final_outcomes['Player.1']) & (final_outcomes['PG'] != final_outcomes['Player.1']) & (final_outcomes['SG'] != final_outcomes['Player.1']) & (final_outcomes['SF'] != final_outcomes['Player.1']) & (final_outcomes['PF'] != final_outcomes['Player.1']) & (final_outcomes['C'] != final_outcomes['Player.1']), final_outcomes['Player.1'], final_outcomes['F']) | |
final_outcomes['F'] = np.where((final_outcomes['pos.3'].str.contains("F")) & (~final_outcomes['pos.3'].str.contains("G")) & (final_outcomes['F'] == 0) & (final_outcomes['G'] != final_outcomes['Player.2']) & (final_outcomes['PG'] != final_outcomes['Player.2']) & (final_outcomes['SG'] != final_outcomes['Player.2']) & (final_outcomes['SF'] != final_outcomes['Player.2']) & (final_outcomes['PF'] != final_outcomes['Player.2']) & (final_outcomes['C'] != final_outcomes['Player.2']), final_outcomes['Player.2'], final_outcomes['F']) | |
final_outcomes['F'] = np.where((final_outcomes['pos.4'].str.contains("F")) & (~final_outcomes['pos.4'].str.contains("G")) & (final_outcomes['F'] == 0) & (final_outcomes['G'] != final_outcomes['Player.3']) & (final_outcomes['PG'] != final_outcomes['Player.3']) & (final_outcomes['SG'] != final_outcomes['Player.3']) & (final_outcomes['SF'] != final_outcomes['Player.3']) & (final_outcomes['PF'] != final_outcomes['Player.3']) & (final_outcomes['C'] != final_outcomes['Player.3']), final_outcomes['Player.3'], final_outcomes['F']) | |
final_outcomes['F'] = np.where((final_outcomes['pos.5'].str.contains("F")) & (~final_outcomes['pos.5'].str.contains("G")) & (final_outcomes['F'] == 0) & (final_outcomes['G'] != final_outcomes['Player.4']) & (final_outcomes['PG'] != final_outcomes['Player.4']) & (final_outcomes['SG'] != final_outcomes['Player.4']) & (final_outcomes['SF'] != final_outcomes['Player.4']) & (final_outcomes['PF'] != final_outcomes['Player.4']) & (final_outcomes['C'] != final_outcomes['Player.4']), final_outcomes['Player.4'], final_outcomes['F']) | |
final_outcomes['F'] = np.where((final_outcomes['pos.6'].str.contains("F")) & (~final_outcomes['pos.6'].str.contains("G")) & (final_outcomes['F'] == 0) & (final_outcomes['G'] != final_outcomes['Player.5']) & (final_outcomes['PG'] != final_outcomes['Player.5']) & (final_outcomes['SG'] != final_outcomes['Player.5']) & (final_outcomes['SF'] != final_outcomes['Player.5']) & (final_outcomes['PF'] != final_outcomes['Player.5']) & (final_outcomes['C'] != final_outcomes['Player.5']), final_outcomes['Player.5'], final_outcomes['F']) | |
final_outcomes['F'] = np.where((final_outcomes['pos.7'].str.contains("F")) & (~final_outcomes['pos.7'].str.contains("G")) & (final_outcomes['F'] == 0) & (final_outcomes['G'] != final_outcomes['Player.6']) & (final_outcomes['PG'] != final_outcomes['Player.6']) & (final_outcomes['SG'] != final_outcomes['Player.6']) & (final_outcomes['SF'] != final_outcomes['Player.6']) & (final_outcomes['PF'] != final_outcomes['Player.6']) & (final_outcomes['C'] != final_outcomes['Player.6']), final_outcomes['Player.6'], final_outcomes['F']) | |
final_outcomes['F'] = np.where((final_outcomes['pos.8'].str.contains("F")) & (~final_outcomes['pos.8'].str.contains("G")) & (final_outcomes['F'] == 0) & (final_outcomes['G'] != final_outcomes['Player.7']) & (final_outcomes['PG'] != final_outcomes['Player.7']) & (final_outcomes['SG'] != final_outcomes['Player.7']) & (final_outcomes['SF'] != final_outcomes['Player.7']) & (final_outcomes['PF'] != final_outcomes['Player.7']) & (final_outcomes['C'] != final_outcomes['Player.7']), final_outcomes['Player.7'], final_outcomes['F']) | |
final_outcomes['F'] = np.where((final_outcomes['pos.1'].str.contains("F")) & (final_outcomes['F'] == 0) & (final_outcomes['G'] != final_outcomes['Player']) & (final_outcomes['PG'] != final_outcomes['Player']) & (final_outcomes['SG'] != final_outcomes['Player']) & (final_outcomes['SF'] != final_outcomes['Player']) & (final_outcomes['PF'] != final_outcomes['Player']) & (final_outcomes['C'] != final_outcomes['Player']), final_outcomes['Player'], final_outcomes['F']) | |
final_outcomes['F'] = np.where((final_outcomes['pos.2'].str.contains("F")) & (final_outcomes['F'] == 0) & (final_outcomes['G'] != final_outcomes['Player.1']) & (final_outcomes['PG'] != final_outcomes['Player.1']) & (final_outcomes['SG'] != final_outcomes['Player.1']) & (final_outcomes['SF'] != final_outcomes['Player.1']) & (final_outcomes['PF'] != final_outcomes['Player.1']) & (final_outcomes['C'] != final_outcomes['Player.1']), final_outcomes['Player.1'], final_outcomes['F']) | |
final_outcomes['F'] = np.where((final_outcomes['pos.3'].str.contains("F")) & (final_outcomes['F'] == 0) & (final_outcomes['G'] != final_outcomes['Player.2']) & (final_outcomes['PG'] != final_outcomes['Player.2']) & (final_outcomes['SG'] != final_outcomes['Player.2']) & (final_outcomes['SF'] != final_outcomes['Player.2']) & (final_outcomes['PF'] != final_outcomes['Player.2']) & (final_outcomes['C'] != final_outcomes['Player.2']), final_outcomes['Player.2'], final_outcomes['F']) | |
final_outcomes['F'] = np.where((final_outcomes['pos.4'].str.contains("F")) & (final_outcomes['F'] == 0) & (final_outcomes['G'] != final_outcomes['Player.3']) & (final_outcomes['PG'] != final_outcomes['Player.3']) & (final_outcomes['SG'] != final_outcomes['Player.3']) & (final_outcomes['SF'] != final_outcomes['Player.3']) & (final_outcomes['PF'] != final_outcomes['Player.3']) & (final_outcomes['C'] != final_outcomes['Player.3']), final_outcomes['Player.3'], final_outcomes['F']) | |
final_outcomes['F'] = np.where((final_outcomes['pos.5'].str.contains("F")) & (final_outcomes['F'] == 0) & (final_outcomes['G'] != final_outcomes['Player.4']) & (final_outcomes['PG'] != final_outcomes['Player.4']) & (final_outcomes['SG'] != final_outcomes['Player.4']) & (final_outcomes['SF'] != final_outcomes['Player.4']) & (final_outcomes['PF'] != final_outcomes['Player.4']) & (final_outcomes['C'] != final_outcomes['Player.4']), final_outcomes['Player.4'], final_outcomes['F']) | |
final_outcomes['F'] = np.where((final_outcomes['pos.6'].str.contains("F")) & (final_outcomes['F'] == 0) & (final_outcomes['G'] != final_outcomes['Player.5']) & (final_outcomes['PG'] != final_outcomes['Player.5']) & (final_outcomes['SG'] != final_outcomes['Player.5']) & (final_outcomes['SF'] != final_outcomes['Player.5']) & (final_outcomes['PF'] != final_outcomes['Player.5']) & (final_outcomes['C'] != final_outcomes['Player.5']), final_outcomes['Player.5'], final_outcomes['F']) | |
final_outcomes['F'] = np.where((final_outcomes['pos.7'].str.contains("F")) & (final_outcomes['F'] == 0) & (final_outcomes['G'] != final_outcomes['Player.6']) & (final_outcomes['PG'] != final_outcomes['Player.6']) & (final_outcomes['SG'] != final_outcomes['Player.6']) & (final_outcomes['SF'] != final_outcomes['Player.6']) & (final_outcomes['PF'] != final_outcomes['Player.6']) & (final_outcomes['C'] != final_outcomes['Player.6']), final_outcomes['Player.6'], final_outcomes['F']) | |
final_outcomes['F'] = np.where((final_outcomes['pos.8'].str.contains("F")) & (final_outcomes['F'] == 0) & (final_outcomes['G'] != final_outcomes['Player.7']) & (final_outcomes['PG'] != final_outcomes['Player.7']) & (final_outcomes['SG'] != final_outcomes['Player.7']) & (final_outcomes['SF'] != final_outcomes['Player.7']) & (final_outcomes['PF'] != final_outcomes['Player.7']) & (final_outcomes['C'] != final_outcomes['Player.7']), final_outcomes['Player.7'], final_outcomes['F']) | |
# #---------- FILL UNIQUE ----------# | |
final_outcomes['UTIL'] = np.where((final_outcomes['UTIL'] == 0) | |
& (final_outcomes['PG'] != final_outcomes['Player']) | |
& (final_outcomes['SG'] != final_outcomes['Player']) | |
& (final_outcomes['SF'] != final_outcomes['Player']) | |
& (final_outcomes['PF'] != final_outcomes['Player']) | |
& (final_outcomes['C'] != final_outcomes['Player']) | |
& (final_outcomes['G'] != final_outcomes['Player']) | |
& (final_outcomes['F'] != final_outcomes['Player']) | |
, final_outcomes['Player'], final_outcomes['UTIL']) | |
final_outcomes['UTIL'] = np.where((final_outcomes['UTIL'] == 0) | |
& (final_outcomes['PG'] != final_outcomes['Player.1']) | |
& (final_outcomes['SG'] != final_outcomes['Player.1']) | |
& (final_outcomes['SF'] != final_outcomes['Player.1']) | |
& (final_outcomes['PF'] != final_outcomes['Player.1']) | |
& (final_outcomes['C'] != final_outcomes['Player.1']) | |
& (final_outcomes['G'] != final_outcomes['Player.1']) | |
& (final_outcomes['F'] != final_outcomes['Player.1']) | |
, final_outcomes['Player.1'], final_outcomes['UTIL']) | |
final_outcomes['UTIL'] = np.where((final_outcomes['UTIL'] == 0) | |
& (final_outcomes['PG'] != final_outcomes['Player.2']) | |
& (final_outcomes['SG'] != final_outcomes['Player.2']) | |
& (final_outcomes['SF'] != final_outcomes['Player.2']) | |
& (final_outcomes['PF'] != final_outcomes['Player.2']) | |
& (final_outcomes['C'] != final_outcomes['Player.2']) | |
& (final_outcomes['G'] != final_outcomes['Player.2']) | |
& (final_outcomes['F'] != final_outcomes['Player.2']) | |
, final_outcomes['Player.2'], final_outcomes['UTIL']) | |
final_outcomes['UTIL'] = np.where((final_outcomes['UTIL'] == 0) | |
& (final_outcomes['PG'] != final_outcomes['Player.3']) | |
& (final_outcomes['SG'] != final_outcomes['Player.3']) | |
& (final_outcomes['SF'] != final_outcomes['Player.3']) | |
& (final_outcomes['PF'] != final_outcomes['Player.3']) | |
& (final_outcomes['C'] != final_outcomes['Player.3']) | |
& (final_outcomes['G'] != final_outcomes['Player.3']) | |
& (final_outcomes['F'] != final_outcomes['Player.3']) | |
, final_outcomes['Player.3'], final_outcomes['UTIL']) | |
final_outcomes['UTIL'] = np.where((final_outcomes['UTIL'] == 0) | |
& (final_outcomes['PG'] != final_outcomes['Player.4']) | |
& (final_outcomes['SG'] != final_outcomes['Player.4']) | |
& (final_outcomes['SF'] != final_outcomes['Player.4']) | |
& (final_outcomes['PF'] != final_outcomes['Player.4']) | |
& (final_outcomes['C'] != final_outcomes['Player.4']) | |
& (final_outcomes['G'] != final_outcomes['Player.4']) | |
& (final_outcomes['F'] != final_outcomes['Player.4']) | |
, final_outcomes['Player.4'], final_outcomes['UTIL']) | |
final_outcomes['UTIL'] = np.where((final_outcomes['UTIL'] == 0) | |
& (final_outcomes['PG'] != final_outcomes['Player.5']) | |
& (final_outcomes['SG'] != final_outcomes['Player.5']) | |
& (final_outcomes['SF'] != final_outcomes['Player.5']) | |
& (final_outcomes['PF'] != final_outcomes['Player.5']) | |
& (final_outcomes['C'] != final_outcomes['Player.5']) | |
& (final_outcomes['G'] != final_outcomes['Player.5']) | |
& (final_outcomes['F'] != final_outcomes['Player.5']) | |
, final_outcomes['Player.5'], final_outcomes['UTIL']) | |
final_outcomes['UTIL'] = np.where((final_outcomes['UTIL'] == 0) | |
& (final_outcomes['PG'] != final_outcomes['Player.6']) | |
& (final_outcomes['SG'] != final_outcomes['Player.6']) | |
& (final_outcomes['SF'] != final_outcomes['Player.6']) | |
& (final_outcomes['PF'] != final_outcomes['Player.6']) | |
& (final_outcomes['C'] != final_outcomes['Player.6']) | |
& (final_outcomes['G'] != final_outcomes['Player.6']) | |
& (final_outcomes['F'] != final_outcomes['Player.6']) | |
, final_outcomes['Player.6'], final_outcomes['UTIL']) | |
final_outcomes['UTIL'] = np.where((final_outcomes['UTIL'] == 0) | |
& (final_outcomes['PG'] != final_outcomes['Player.7']) | |
& (final_outcomes['SG'] != final_outcomes['Player.7']) | |
& (final_outcomes['SF'] != final_outcomes['Player.7']) | |
& (final_outcomes['PF'] != final_outcomes['Player.7']) | |
& (final_outcomes['C'] != final_outcomes['Player.7']) | |
& (final_outcomes['G'] != final_outcomes['Player.7']) | |
& (final_outcomes['F'] != final_outcomes['Player.7']) | |
, final_outcomes['Player.7'], final_outcomes['UTIL']) | |
final_outcomes = final_outcomes.loc[final_outcomes['two_c'] <= 2] | |
final_sorted_outcomes = final_outcomes[['PG', 'SG', 'SF', 'PF', 'C', 'G', 'F', 'UTIL']] | |
final_sorted_outcomes.rename(columns={"PG": "Player", "SG": "Player.1", "SF": "Player.2", "PF": "Player.3", "C": "Player.4", "G": "Player.5", "F": "Player.6", "UTIL": "Player.7"}, inplace = True) | |
final_sorted_outcomes['Salary'] = sum([final_sorted_outcomes['Player'].map(salary_dict), | |
final_sorted_outcomes['Player.1'].map(salary_dict), | |
final_sorted_outcomes['Player.2'].map(salary_dict), | |
final_sorted_outcomes['Player.3'].map(salary_dict), | |
final_sorted_outcomes['Player.4'].map(salary_dict), | |
final_sorted_outcomes['Player.5'].map(salary_dict), | |
final_sorted_outcomes['Player.6'].map(salary_dict), | |
final_sorted_outcomes['Player.7'].map(salary_dict)]) | |
final_sorted_outcomes['Proj'] = sum([final_sorted_outcomes['Player'].map(player_proj_dict), | |
final_sorted_outcomes['Player.1'].map(player_proj_dict), | |
final_sorted_outcomes['Player.2'].map(player_proj_dict), | |
final_sorted_outcomes['Player.3'].map(player_proj_dict), | |
final_sorted_outcomes['Player.4'].map(player_proj_dict), | |
final_sorted_outcomes['Player.5'].map(player_proj_dict), | |
final_sorted_outcomes['Player.6'].map(player_proj_dict), | |
final_sorted_outcomes['Player.7'].map(player_proj_dict)]) | |
final_sorted_outcomes['Proj Own%'] = sum([final_sorted_outcomes['Player'].map(player_own_dict), | |
final_sorted_outcomes['Player.1'].map(player_own_dict), | |
final_sorted_outcomes['Player.2'].map(player_own_dict), | |
final_sorted_outcomes['Player.3'].map(player_own_dict), | |
final_sorted_outcomes['Player.4'].map(player_own_dict), | |
final_sorted_outcomes['Player.5'].map(player_own_dict), | |
final_sorted_outcomes['Player.6'].map(player_own_dict), | |
final_sorted_outcomes['Player.7'].map(player_own_dict)]) | |
sort_df = final_sorted_outcomes.sort_values(by='Proj', ascending=False) | |
sort_df = sort_df.reset_index() | |
sort_df = sort_df.drop(['index'], axis=1) | |
display_frame = sort_df.apply(pd.to_numeric, errors='ignore') | |
display_frame = display_frame.drop_duplicates(subset=['Proj']) | |
display_frame = display_frame.round(2) | |
with col1: | |
final_outcomes = display_frame | |
final_outcomes.rename(columns={'Player': 'Player_1', 'Player.1': 'Player_2', 'Player.2': 'Player_3', 'Player.3': 'Player_4', 'Player.4': 'Player_5', 'Player.5': 'Player_6', 'Player.6': 'Player_7', 'Player.7': 'Player_8'}, inplace = True) | |
final_outcomes['p1 id'] = final_outcomes['Player_1'].map(id_dict) | |
final_outcomes['p2 id'] = final_outcomes['Player_2'].map(id_dict) | |
final_outcomes['p3 id'] = final_outcomes['Player_3'].map(id_dict) | |
final_outcomes['p4 id'] = final_outcomes['Player_4'].map(id_dict) | |
final_outcomes['p5 id'] = final_outcomes['Player_5'].map(id_dict) | |
final_outcomes['p6 id'] = final_outcomes['Player_6'].map(id_dict) | |
final_outcomes['p7 id'] = final_outcomes['Player_7'].map(id_dict) | |
final_outcomes['p8 id'] = final_outcomes['Player_8'].map(id_dict) | |
final_outcomes = final_outcomes[['p1 id', 'p2 id', 'p3 id', 'p4 id', 'p5 id', 'p6 id', 'p7 id', 'p8 id']] | |
with col1: | |
st.download_button( | |
label="Export Lineups", | |
data=convert_df_to_csv(final_outcomes), | |
file_name='NBA_DFS_export.csv', | |
mime='text/csv', | |
) | |
with hold_container: | |
hold_container = st.empty() |