import sys sys.path.append('Backend') import pandas as pd from app.parsers.mappings import ( IDENTITAS_MAPPING, PEKERJAAN_MAPPING, STUDI_LANJUT_MAPPING, KESESUAIAN_MAPPING, KOMPETENSI_LULUS_MAPPING, KOMPETENSI_SAAT_INI_MAPPING, METODE_PEMBELAJARAN_MAPPING, WAKTU_CARI_KERJA_MAPPING, CARA_CARI_KERJA_MAPPING, LAMARAN_KEAKTIFAN_MAPPING, KESESUAIAN_PEKERJAAN_MAPPING, NUMERIC_FIELDS ) from app.parsers.column_finder import find_column from app.parsers.converters import parse_2024_value, parse_date, konversi_jawaban df = pd.read_csv('Data_Tracerstudy/Data_2024_Tracer_study.csv', sep=';', encoding='utf-8-sig') print(f'Total CSV rows: {len(df)}, columns: {len(df.columns)}') all_mappings = { 'IDENTITAS': IDENTITAS_MAPPING, 'PEKERJAAN': PEKERJAAN_MAPPING, 'STUDI_LANJUT': STUDI_LANJUT_MAPPING, 'KESESUAIAN': KESESUAIAN_MAPPING, 'KOMPETENSI_LULUS': KOMPETENSI_LULUS_MAPPING, 'KOMPETENSI_SAAT_INI': KOMPETENSI_SAAT_INI_MAPPING, 'METODE_PEMBELAJARAN': METODE_PEMBELAJARAN_MAPPING, 'WAKTU_CARI_KERJA': WAKTU_CARI_KERJA_MAPPING, 'CARA_CARI_KERJA': CARA_CARI_KERJA_MAPPING, 'LAMARAN_KEAKTIFAN': LAMARAN_KEAKTIFAN_MAPPING, 'KESESUAIAN_PEKERJAAN': KESESUAIAN_PEKERJAAN_MAPPING, } mapped_cols = set() for grp_name, grp in all_mappings.items(): print(f'\n=== {grp_name} ===') for field, col_patterns in grp.items(): found = find_column(list(df.columns), col_patterns) if found: mapped_cols.add(found) sample_val = df[found].dropna().iloc[0] if df[found].notna().any() else 'ALL_NAN' parsed = parse_2024_value(sample_val) if sample_val != 'ALL_NAN' else None print(f' {field} -> [OK] "{found}" (sample: {repr(sample_val)} -> {parsed})') else: print(f' {field} -> [MISSING] patterns: {col_patterns}') unmapped = [c for c in df.columns if c not in mapped_cols] print(f'\n=== UNMAPPED COLUMNS ({len(unmapped)}) ===') for c in unmapped: print(' -', c)