TIF_E41253310/scripts/checks/check_2019_fields.py

34 lines
1.7 KiB
Python

import pandas as pd
import sys
sys.path.append('Backend')
from app.parsers.mappings import (
YEAR_CONFIG, 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, get_field_code
)
from app.parsers.column_finder import find_column, get_value
from app.parsers.converters import konversi_jawaban
df = pd.read_csv('Data_Tracerstudy/Data_2019_Tracer_study.csv', sep=';', encoding='utf-8-sig')
print(f"2019 shape: {df.shape}", flush=True)
# Check F1602 and F402
for col_name in ['F1601', 'F1602', 'F1603', 'F401', 'F402', 'F403']:
if col_name in df.columns:
vals = df[col_name].value_counts(dropna=False).to_dict()
print(f"Column '{col_name}': {vals}", flush=True)
# Now check how import_service processes these for 2019:
source_cols = list(df.columns)
for target in ['kerja_tidak_sesuai_1', 'kerja_tidak_sesuai_2', 'cari_iklan', 'cari_melamar_tanpa_lowongan']:
mapped_col = find_column(source_cols, CARA_CARI_KERJA_MAPPING.get(target, []) or KESESUAIAN_PEKERJAAN_MAPPING.get(target, []))
fc = get_field_code(target, CARA_CARI_KERJA_MAPPING if 'cari' in target else KESESUAIAN_PEKERJAAN_MAPPING)
print(f"\nTarget '{target}' (code {fc}): mapped to col '{mapped_col}'", flush=True)
if mapped_col:
for idx in range(min(5, len(df))):
row = df.iloc[idx]
val = get_value(row, source_cols, [mapped_col])
conv = konversi_jawaban(fc, val)
print(f" Row {idx}: raw={repr(val)} -> konversi={repr(conv)}", flush=True)