|
import pandas as pd |
|
|
|
def create_general_comparison(df: pd.DataFrame, entrants: list = None): |
|
loop_list = ['Overall'] + entrants |
|
for entrant in loop_list: |
|
check_cols = ['salary', 'actual_fpts', 'actual_own', 'dupes', 'uniques', 'under_5', 'under_10'] |
|
general_exposures = pd.DataFrame() |
|
for each_col in check_cols: |
|
general_frame = pd.DataFrame() |
|
|
|
if entrant == 'Overall': |
|
overall_general = pd.Series(list(df[each_col])).sum() |
|
general_contest_len = len(df) |
|
else: |
|
overall_general = pd.Series(list(df[df['BaseName'] == entrant][each_col])).sum() |
|
general_contest_len = len(df[df['BaseName'] == entrant]) |
|
|
|
each_set_name = ['Overall'] |
|
each_general_set = [overall_general] |
|
each_general_len_set = [general_contest_len] |
|
general_count_var = 0 |
|
for each_general in each_general_set: |
|
general_frame['Stat'] = [each_col] |
|
try: |
|
general_frame['Average'] = [each_general / each_general_len_set[general_count_var]] |
|
except: |
|
general_frame['Average'] = [0] |
|
general_frame = general_frame.rename(columns={'Average': f'Average {entrant}'}) |
|
general_exposures = pd.concat([general_exposures, general_frame], ignore_index = True, axis = 0) |
|
general_exposures['Stat'] = general_exposures['Stat'].replace(['salary', 'actual_fpts', 'actual_own', 'dupes', 'uniques', 'under_5', 'under_10'], ['Salary Used', 'Finishing Points', 'Total Ownership', 'Duplications', 'Uniques', 'Under 5', 'Under 10']) |
|
if entrant == 'Overall': |
|
final_exposures = general_exposures |
|
else: |
|
final_exposures = pd.merge(final_exposures, general_exposures, on='Stat', how='outer') |
|
return final_exposures |