Syntrex commited on
Commit
aa1c2fd
·
verified ·
1 Parent(s): c32052f

Update models/batter_zone_model.py

Browse files
Files changed (1) hide show
  1. models/batter_zone_model.py +22 -1
models/batter_zone_model.py CHANGED
@@ -138,7 +138,28 @@ def build_batter_zone_feature_row(statcast_df: pd.DataFrame, player_name: str) -
138
  if statcast_df.empty or "player_name" not in statcast_df.columns:
139
  return _empty_batter_zone_row(player_name)
140
 
141
- df = statcast_df[statcast_df["player_name"].astype(str) == str(player_name)].copy()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
142
  if df.empty:
143
  return _empty_batter_zone_row(player_name)
144
 
 
138
  if statcast_df.empty or "player_name" not in statcast_df.columns:
139
  return _empty_batter_zone_row(player_name)
140
 
141
+ player_names = statcast_df["player_name"].astype(str).fillna("")
142
+ normalized_target_variants = _to_last_first_variants(player_name)
143
+
144
+ normalized_series = player_names.map(_normalize_name_text)
145
+
146
+ mask = normalized_series.isin(normalized_target_variants)
147
+
148
+ df = statcast_df[mask].copy()
149
+
150
+ if df.empty:
151
+ normalized_player_name = _normalize_name_text(player_name)
152
+ name_parts = normalized_player_name.split()
153
+
154
+ if len(name_parts) >= 2:
155
+ first = name_parts[0]
156
+ last = name_parts[-1]
157
+
158
+ loose_mask = normalized_series.apply(
159
+ lambda n: isinstance(n, str) and first in n and last in n
160
+ )
161
+ df = statcast_df[loose_mask].copy()
162
+
163
  if df.empty:
164
  return _empty_batter_zone_row(player_name)
165