DFS_Contest_Analyzer / global_func /create_size_comparison.py
James McCool
Rename function create_stack_comparison to create_size_comparison in create_size_comparison.py for consistency with feature naming. This change aligns the function name with its purpose of comparing stack sizes.
add3343
import pandas as pd
def create_size_comparison(df: pd.DataFrame, entrants: list):
overall_players = pd.Series(list(df['stack_size'])).value_counts()
contest_len = len(df)
set_frame = overall_players.to_frame().reset_index().rename(columns={'index': 'Player', 'count': 'Count'})
set_frame['Percent'] = set_frame['Count'] / contest_len
set_frame = set_frame[['Player', 'Percent']]
set_frame = set_frame.rename(columns={'Percent': f'Exposure Overall'})
player_frame = set_frame
for each_user in entrants:
overall_players = pd.Series(list(df[df['BaseName'] == each_user]['stack_size'])).value_counts()
set_frame = overall_players.to_frame().reset_index().rename(columns={'index': 'Player', 'count': 'Count'})
set_frame['Percent'] = set_frame['Count'] / len(df[df['BaseName'] == each_user])
set_frame = set_frame[['Player', 'Percent']]
set_frame = set_frame.rename(columns={'Percent': f'Exposure {each_user}'})
player_frame = pd.merge(player_frame, set_frame, on='Player', how='outer')
return player_frame.sort_values(by='Exposure Overall', ascending=False)