Added Arm rating
This commit is contained in:
parent
d3c4e4b575
commit
b5d10f0060
@ -339,19 +339,66 @@ async def get_basic_scouting(cardset_id: list = Query(default=None)):
|
||||
|
||||
def get_raw_arm(df_data):
|
||||
of_arm = None
|
||||
# get top of pos
|
||||
# Neg arm * -5 / (6 - Pos arm) * 3
|
||||
# apply pos multiplier (rf: 1.5, cf: 1, lf: 0.5)
|
||||
# add value by pos (rf: (6-rf_range) * 4, cf: (6-cf_range) * 3,lf: (6-lf_range) * 2)
|
||||
of_pos = None
|
||||
if pd.notna(df_data['Range RF']):
|
||||
of_pos = 'RF'
|
||||
elif pd.notna(df_data['Range CF']):
|
||||
of_pos = 'CF'
|
||||
elif pd.notna(df_data['Range LF']):
|
||||
of_pos = 'LF'
|
||||
|
||||
if of_pos is not None:
|
||||
if df_data['Arm OF'] < 0:
|
||||
of_raw = df_data['Arm OF'] * -5
|
||||
else:
|
||||
of_raw = (5 - df_data['Arm OF'])
|
||||
|
||||
if of_pos == 'RF':
|
||||
of_raw = of_raw * 1.5
|
||||
of_raw += ((6 - df_data['Range RF']) * 4)
|
||||
elif of_pos == 'CF':
|
||||
of_raw += ((6 - df_data['Range CF']) * 3)
|
||||
elif of_pos == 'LF':
|
||||
of_raw = of_raw / 2
|
||||
of_raw += ((6 - df_data['Range LF']) * 2)
|
||||
|
||||
of_arm = of_raw
|
||||
|
||||
if_arm = None
|
||||
# 100 - (50 - ((6-3b_range) * 5) + (6-ss_range) * 4 + (6-2b_range) * 3 + (6-1b_range) )
|
||||
if pd.notna(df_data['Range 3B']) or pd.notna(df_data['Range 2B']) or pd.notna(df_data['Range 1B']) or \
|
||||
pd.notna(df_data['Range SS']):
|
||||
range_totals = 0
|
||||
if pd.notna(df_data['Range 3B']):
|
||||
range_totals += ((6 - df_data['Range 3B']) * 5)
|
||||
if pd.notna(df_data['Range SS']):
|
||||
range_totals += ((6 - df_data['Range SS']) * 4)
|
||||
if pd.notna(df_data['Range 2B']):
|
||||
range_totals += ((6 - df_data['Range 2B']) * 3)
|
||||
if pd.notna(df_data['Range 1B']):
|
||||
range_totals += (6 - df_data['Range 1B'])
|
||||
if_arm = 100 - (50 - range_totals)
|
||||
|
||||
c_arm = None
|
||||
# -5: 100
|
||||
# (10 - c_arm) * 3 + (20 - c_pb) + (20 - c_overthrow) - c_error + 20
|
||||
if pd.notna(df_data['Arm C']):
|
||||
if df_data['Arm C'] == -5:
|
||||
c_arm = 100
|
||||
else:
|
||||
temp_arm = 20 + ((10 - df_data['Arm C']) * 3) + (20 - df_data['PB C']) + (20 - df_data['Throw C']) - \
|
||||
df_data['Error C']
|
||||
c_arm = min(100, temp_arm)
|
||||
|
||||
output = raw_data[['player_id', 'player_name', 'cardset_name', 'Speed', 'Steal', 'Reaction']]
|
||||
if c_arm is not None:
|
||||
return c_arm
|
||||
elif of_arm is not None:
|
||||
return of_arm
|
||||
elif if_arm is not None:
|
||||
return if_arm
|
||||
|
||||
raw_data['arm_raw'] = raw_data.apply(get_raw_arm, axis=1)
|
||||
raw_data['arm_rank'] = raw_data['arm_raw'].rank(pct=True)
|
||||
raw_data['Arm'] = round(raw_data['arm_rank'] * 100)
|
||||
|
||||
output = raw_data[['player_name', 'cardset_name', 'Speed', 'Steal', 'Reaction', 'Arm']]
|
||||
# raw_data.sort_values(by=['player_id'], inplace=True)
|
||||
return Response(content=output.to_csv(index=True), media_type='text/csv')
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user