Syntrex commited on
Commit
8b77825
·
verified ·
1 Parent(s): 109e278

Update models/pitcher_adjustment.py

Browse files
Files changed (1) hide show
  1. models/pitcher_adjustment.py +20 -0
models/pitcher_adjustment.py CHANGED
@@ -20,6 +20,10 @@ def build_pitcher_feature_row(statcast_df: pd.DataFrame, pitcher_name: str) -> d
20
  "hard_hit_rate_allowed": None,
21
  "barrel_rate_allowed": None,
22
  "avg_release_speed": None,
 
 
 
 
23
  "sample_size": 0,
24
  }
25
 
@@ -31,15 +35,27 @@ def build_pitcher_feature_row(statcast_df: pd.DataFrame, pitcher_name: str) -> d
31
  "hard_hit_rate_allowed": None,
32
  "barrel_rate_allowed": None,
33
  "avg_release_speed": None,
 
 
 
 
34
  "sample_size": 0,
35
  }
36
 
37
  launch_speed = pd.to_numeric(df.get("launch_speed"), errors="coerce")
38
  launch_angle = pd.to_numeric(df.get("launch_angle"), errors="coerce")
39
  release_speed = pd.to_numeric(df.get("release_speed"), errors="coerce")
 
 
 
 
40
 
41
  ev_allowed = _safe_mean(launch_speed)
42
  avg_release_speed = _safe_mean(release_speed)
 
 
 
 
43
 
44
  hard_hit_rate_allowed = None
45
  if not launch_speed.dropna().empty:
@@ -66,6 +82,10 @@ def build_pitcher_feature_row(statcast_df: pd.DataFrame, pitcher_name: str) -> d
66
  "hard_hit_rate_allowed": hard_hit_rate_allowed,
67
  "barrel_rate_allowed": barrel_rate_allowed,
68
  "avg_release_speed": avg_release_speed,
 
 
 
 
69
  "sample_size": int(len(df)),
70
  }
71
 
 
20
  "hard_hit_rate_allowed": None,
21
  "barrel_rate_allowed": None,
22
  "avg_release_speed": None,
23
+ "avg_release_spin_rate": None,
24
+ "avg_release_extension": None,
25
+ "avg_pfx_x": None,
26
+ "avg_pfx_z": None,
27
  "sample_size": 0,
28
  }
29
 
 
35
  "hard_hit_rate_allowed": None,
36
  "barrel_rate_allowed": None,
37
  "avg_release_speed": None,
38
+ "avg_release_spin_rate": None,
39
+ "avg_release_extension": None,
40
+ "avg_pfx_x": None,
41
+ "avg_pfx_z": None,
42
  "sample_size": 0,
43
  }
44
 
45
  launch_speed = pd.to_numeric(df.get("launch_speed"), errors="coerce")
46
  launch_angle = pd.to_numeric(df.get("launch_angle"), errors="coerce")
47
  release_speed = pd.to_numeric(df.get("release_speed"), errors="coerce")
48
+ release_spin_rate = pd.to_numeric(df.get("release_spin_rate"), errors="coerce")
49
+ release_extension = pd.to_numeric(df.get("release_extension"), errors="coerce")
50
+ pfx_x = pd.to_numeric(df.get("pfx_x"), errors="coerce")
51
+ pfx_z = pd.to_numeric(df.get("pfx_z"), errors="coerce")
52
 
53
  ev_allowed = _safe_mean(launch_speed)
54
  avg_release_speed = _safe_mean(release_speed)
55
+ avg_release_spin_rate = _safe_mean(release_spin_rate)
56
+ avg_release_extension = _safe_mean(release_extension)
57
+ avg_pfx_x = _safe_mean(pfx_x)
58
+ avg_pfx_z = _safe_mean(pfx_z)
59
 
60
  hard_hit_rate_allowed = None
61
  if not launch_speed.dropna().empty:
 
82
  "hard_hit_rate_allowed": hard_hit_rate_allowed,
83
  "barrel_rate_allowed": barrel_rate_allowed,
84
  "avg_release_speed": avg_release_speed,
85
+ "avg_release_spin_rate": avg_release_spin_rate,
86
+ "avg_release_extension": avg_release_extension,
87
+ "avg_pfx_x": avg_pfx_x,
88
+ "avg_pfx_z": avg_pfx_z,
89
  "sample_size": int(len(df)),
90
  }
91