Update app.py
Browse files
app.py
CHANGED
|
@@ -23,6 +23,9 @@ import inflect
|
|
| 23 |
from matplotlib.pyplot import text
|
| 24 |
import rolling_batter_functions as rbf
|
| 25 |
|
|
|
|
|
|
|
|
|
|
| 26 |
def percentile(n):
|
| 27 |
def percentile_(x):
|
| 28 |
return np.nanpercentile(x, n)
|
|
@@ -154,9 +157,24 @@ codes_in = ['In play, out(s)',
|
|
| 154 |
'Intent Ball',
|
| 155 |
'Swinging Pitchout']
|
| 156 |
|
| 157 |
-
exit_velo_df['in_zone'] = exit_velo_df['zone'] < 10
|
| 158 |
|
| 159 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 160 |
exit_velo_df = exit_velo_df.drop_duplicates(subset=['play_id'])
|
| 161 |
|
| 162 |
exit_velo_df_codes = exit_velo_df[exit_velo_df.play_description.isin(codes_in)].dropna(subset=['in_zone'])
|
|
|
|
| 23 |
from matplotlib.pyplot import text
|
| 24 |
import rolling_batter_functions as rbf
|
| 25 |
|
| 26 |
+
px_model = joblib.load('joblib_model/linear_reg_model_x.joblib')
|
| 27 |
+
pz_model = joblib.load('joblib_model/linear_reg_model_z.joblib')
|
| 28 |
+
|
| 29 |
def percentile(n):
|
| 30 |
def percentile_(x):
|
| 31 |
return np.nanpercentile(x, n)
|
|
|
|
| 157 |
'Intent Ball',
|
| 158 |
'Swinging Pitchout']
|
| 159 |
|
|
|
|
| 160 |
|
| 161 |
|
| 162 |
+
# exit_velo_df['in_zone'] = exit_velo_df['zone'] < 10
|
| 163 |
+
|
| 164 |
+
df.loc[df['sz_top']==0,'sz_top'] = np.nan
|
| 165 |
+
df.loc[df['sz_bot']==0,'sz_bot'] = np.nan
|
| 166 |
+
|
| 167 |
+
if len(df.loc[(~df['x'].isnull())&(df['px'].isnull()),'px']) > 0:
|
| 168 |
+
df.loc[(~df['x'].isnull())&(df['px'].isnull()),'px'] = px_model.predict(df.loc[(~df['x'].isnull())&(df['px'].isnull())][['x']])
|
| 169 |
+
df.loc[(~df['y'].isnull())&(df['pz'].isnull()),'pz'] = px_model.predict(df.loc[(~df['y'].isnull())&(df['pz'].isnull())][['y']]) + 3.2
|
| 170 |
+
|
| 171 |
+
|
| 172 |
+
df['in_zone'] = [x < 10 if type(x) == int else np.nan for x in df['zone']]
|
| 173 |
+
|
| 174 |
+
df['in_zone_2'] = in_zone_model.predict(df[['x','y','sz_bot','sz_top']].fillna(0).values)
|
| 175 |
+
df['in_zone_3'] = df['in_zone_2'] < 10
|
| 176 |
+
df.loc[df['in_zone'].isna(),'in_zone'] = df.loc[df['in_zone'].isna(),'in_zone_3'].fillna(0)
|
| 177 |
+
|
| 178 |
exit_velo_df = exit_velo_df.drop_duplicates(subset=['play_id'])
|
| 179 |
|
| 180 |
exit_velo_df_codes = exit_velo_df[exit_velo_df.play_description.isin(codes_in)].dropna(subset=['in_zone'])
|