TIF_E41253310/archive/debug_import.py

70 lines
2.1 KiB
Python

import pandas as pd
# Baca CSV
df = pd.read_csv(r'c:\Users\syifa\TA-PROJEK\Data_Tracerstudy\Data_2019_Tracer_study.csv', sep=';', encoding='utf-8-sig')
source_cols = list(df.columns)
# Simulasi get_year_mapping
tracer_mapping = {
'email': ['emailmsmh', 'Email', '6. Alamat Email / emailmsmh'],
'kode_pt': ['kdptimsmh', 'Kode PT'],
'nama_perusahaan': ['F5b', 'f5b'],
'jumlah_perusahaan': ['F1102', 'f1102'],
'jabatan': ['F5c', 'f5c'],
}
def normalize(col_name):
if pd.isna(col_name):
return ''
return str(col_name).strip().lower()
def find_column(source_cols, possible_names):
source_cols_lower = {normalize(c): c for c in source_cols}
print(f" source_cols_lower keys: {list(source_cols_lower.keys())[:15]}...")
for name in possible_names:
normalized = normalize(name)
print(f" Looking for '{normalized}' in source_cols_lower...")
if normalized in source_cols_lower:
return source_cols_lower[normalized]
return None
def get_val(mapping_dict, key, default=None):
cols = mapping_dict.get(key, [])
col = find_column(source_cols, cols)
print(f" get_val({key}): found_col='{col}'")
if col and pd.notna(row.get(col)):
val = row[col]
if isinstance(val, (int, float)):
return int(val) if val == int(val) else val
return str(val).strip()
return default
# Test baris pertama
row = df.iloc[0]
print('='*60)
print('DEBUG IMPORT BARIS PERTAMA')
print('='*60)
print(f'NIM: {row["NIM/Nomor Mahasiswa"]}')
print(f'Nama: {row["Nama"]}')
print(f'Email: {row["Email"]}')
print()
print('SOURCE COLS (10 pertama):', source_cols[:15])
print()
print('='*60)
print('CEK find_column')
print('='*60)
for field, cols in tracer_mapping.items():
found = find_column(source_cols, cols)
print(f" RESULT: {field}: cols={cols} -> found='{found}'")
print()
print('='*60)
print('CEK get_val (nama_perusahaan, jabatan)')
print('='*60)
nama_perusahaan = get_val(tracer_mapping, 'nama_perusahaan')
jabatan = get_val(tracer_mapping, 'jabatan')
print(f" nama_perusahaan = {repr(nama_perusahaan)}")
print(f" jabatan = {repr(jabatan)}")