Spaces:
Sleeping
Sleeping
| import pandas as pd | |
| from pathlib import Path | |
| import sys | |
| sys.path.append(str(Path(__file__).resolve().parents[3])) | |
| from src.logger import get_logger | |
| logger = get_logger("ieee_cis.loader") | |
| ROOT_DIR = Path(__file__).resolve().parents[3] | |
| RAW_DIR = ROOT_DIR / "data" / "raw" / "ieee_cis" | |
| def load_transaction(split: str = "train") -> pd.DataFrame: | |
| path = RAW_DIR / f"{split}_transaction.csv" | |
| logger.info(f"Loading {path.name}...") | |
| df = pd.read_csv(path) | |
| logger.info(f" {split}_transaction shape: {df.shape}") | |
| return df | |
| def load_identity(split: str = "train") -> pd.DataFrame: | |
| path = RAW_DIR / f"{split}_identity.csv" | |
| logger.info(f"Loading {path.name}...") | |
| df = pd.read_csv(path) | |
| logger.info(f" {split}_identity shape: {df.shape}") | |
| return df | |
| def load_and_merge(split: str = "train") -> pd.DataFrame: | |
| logger.info("=" * 50) | |
| logger.info(f"LOADING & MERGING: {split}") | |
| txn = load_transaction(split) | |
| idn = load_identity(split) | |
| df = txn.merge(idn, on="TransactionID", how="left") | |
| logger.info(f" Merged shape : {df.shape}") | |
| logger.info(f" Memory usage : {df.memory_usage(deep=True).sum() / 1024**2:.1f} MB") | |
| if "isFraud" in df.columns: | |
| logger.info(f" Fraud rate : {df['isFraud'].mean()*100:.2f}%") | |
| else: | |
| logger.info(f" isFraud column not present (test set — expected)") | |
| logger.info("LOADING COMPLETE") | |
| logger.info("=" * 50) | |
| return df |