Spaces:
Sleeping
Sleeping
Update models/batter_zone_model.py
Browse files- 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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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 |
|