Spaces:
Running
Running
Commit ·
f260be9
1
Parent(s): 1599a55
Zone rebuild tolerante a columnas faltantes en el preprocessed
Browse filesLigas sin enriquecer no traen home/away_team_id u otras columnas: se leen las
disponibles y el resto queda NaN (el head-to-head cae al lookup legacy en vez
de romper la reconstrucción de zones).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
vendor/scripts/generate_real_sociedad_b_reports.py
CHANGED
|
@@ -125,11 +125,21 @@ def build_zone_features_from_preprocessed() -> pd.DataFrame:
|
|
| 125 |
"outcome_value",
|
| 126 |
"pvAdded",
|
| 127 |
]
|
| 128 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 129 |
work["matchId"] = work["matchId"].astype(str)
|
| 130 |
work["teamId"] = work["teamId"].astype(str)
|
| 131 |
-
|
| 132 |
-
|
|
|
|
| 133 |
work["sequenceId"] = pd.to_numeric(work["sequenceId"], errors="coerce")
|
| 134 |
work = work.dropna(subset=["sequenceId"]).copy()
|
| 135 |
work["sequenceId"] = work["sequenceId"].astype(int).astype(str)
|
|
|
|
| 125 |
"outcome_value",
|
| 126 |
"pvAdded",
|
| 127 |
]
|
| 128 |
+
# Tolerante a columnas faltantes: algunas ligas viejas/sin enriquecer no traen todas
|
| 129 |
+
# (p.ej. home/away_team_id). Se leen las disponibles y el resto queda NaN — el
|
| 130 |
+
# head-to-head cae entonces al lookup de roles legacy en vez de romper acá.
|
| 131 |
+
header = pd.read_csv(PREPROCESSED_PATH, nrows=0)
|
| 132 |
+
header_cols = {c.strip().lstrip("") for c in header.columns}
|
| 133 |
+
presentes = [c for c in usecols if c in header_cols]
|
| 134 |
+
work = pd.read_csv(PREPROCESSED_PATH, usecols=presentes, low_memory=False).copy()
|
| 135 |
+
for c in usecols:
|
| 136 |
+
if c not in work.columns:
|
| 137 |
+
work[c] = np.nan
|
| 138 |
work["matchId"] = work["matchId"].astype(str)
|
| 139 |
work["teamId"] = work["teamId"].astype(str)
|
| 140 |
+
if work["home_team_id"].notna().any():
|
| 141 |
+
work["home_team_id"] = work["home_team_id"].astype(str)
|
| 142 |
+
work["away_team_id"] = work["away_team_id"].astype(str)
|
| 143 |
work["sequenceId"] = pd.to_numeric(work["sequenceId"], errors="coerce")
|
| 144 |
work = work.dropna(subset=["sequenceId"]).copy()
|
| 145 |
work["sequenceId"] = work["sequenceId"].astype(int).astype(str)
|