""" Script to rename defense CSV column headers to match expected format. """ import pandas as pd import os # Column mapping COLUMN_MAPPING = { "RF/9": "range_factor_per_nine", "RF/G": "range_factor_per_game", "DP": "DP_def", "E": "E_def", "Ch": "chances", "Inn": "Inn_def", "CS%": "caught_stealing_perc", "PO": "pickoffs", "Name-additional": "key_bbref", } # Directory with defense files DATA_DIR = "data-input/2005 Live Cardset/" # Defense files to process DEFENSE_FILES = [ "defense_c.csv", "defense_1b.csv", "defense_2b.csv", "defense_3b.csv", "defense_ss.csv", "defense_lf.csv", "defense_cf.csv", "defense_rf.csv", "defense_of.csv", "defense_p.csv", ] print("Renaming defense CSV columns...") print("Column mappings:") for old, new in COLUMN_MAPPING.items(): print(f" {old} -> {new}") print() for filename in DEFENSE_FILES: filepath = os.path.join(DATA_DIR, filename) if not os.path.exists(filepath): print(f"⚠ Skipping {filename} (not found)") continue # Read CSV df = pd.read_csv(filepath) # Track which columns were renamed renamed = [] for old_col, new_col in COLUMN_MAPPING.items(): if old_col in df.columns: renamed.append(f"{old_col} -> {new_col}") # Rename columns df = df.rename(columns=COLUMN_MAPPING) # Save back df.to_csv(filepath, index=False) print(f"āœ“ {filename}: Renamed {len(renamed)} columns") if renamed: for r in renamed: print(f" {r}") print("\nāœ“ All defense files processed successfully!")