54 lines
2.1 KiB
Python
54 lines
2.1 KiB
Python
import pandas as pd
|
|
import re
|
|
|
|
# Baca CSV
|
|
df = pd.read_csv('Data_2024_Tracer_study.csv', sep=';', encoding='utf-8-sig')
|
|
cols = list(df.columns)
|
|
|
|
# Normalize function dari import_data.py
|
|
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}
|
|
for name in possible_names:
|
|
if normalize(name) in source_cols_lower:
|
|
return source_cols_lower[normalize(name)]
|
|
return None
|
|
|
|
# Mapping yang ada di import_data.py
|
|
mapping_tester = {
|
|
'nim': ['nimhsmsmh', 'NIM/Nomor Mahasiswa', 'NIM', '3. NIM / nimhsmsmh', '3. NIM / nimhsmsmh (Gunakan Huruf Besar)'],
|
|
'nama': ['nmmhsmsmh', 'Nama', '4. Nama Lengkap / nmmhsmsmh (Gunakan Huruf Besar)'],
|
|
'email': ['emailmsmh', 'Email', '6. Alamat Email / emailmsmh'],
|
|
'tahun_lulus': ['tahun_lulus', '7. Tahun Lulus / tahun_lulus'],
|
|
'status_saat_ini': ['F8', 'f8', '1. Jelaskan status Anda saat ini? f8'],
|
|
'bulan_dapat_kerja': ['F502', 'f502', '2. Berapa bulan anda mendapatkan pekerjaan SEBELUM LULUS? f502'],
|
|
'etika_lulus_full': ['F1761', 'f1761', '19. Pada tingkat mana kompetensi ETIKA anda pada SAAT LULUS? f1761'],
|
|
'metode_perkuliahan': ['F21', 'f21', '33. Perkuliahan (f21)'],
|
|
'cari_iklan': ['F401', 'f401', '43. Melalui iklan di koran/majalah, brosur ? f401'],
|
|
'aktif_cari_kerja_4_minggu': ['F1001', 'f1001', '61. Apakah Anda aktif mencari pekerjaan dalam 4 minggu terakhir? Pilihlah satu jawaban f1001'],
|
|
}
|
|
|
|
# Test find_column
|
|
print("=== TEST FIND_COLUMN ===")
|
|
source_cols = cols
|
|
for field, candidates in mapping_tester.items():
|
|
found = find_column(source_cols, candidates)
|
|
if found:
|
|
print(f"OK: {field} -> '{found}'")
|
|
else:
|
|
print(f"NULL: {field}")
|
|
print(f" candidates: {candidates[:2]}...")
|
|
# Suggest dari CSV
|
|
for c in source_cols[:10]:
|
|
if normalize(candidates[0]) in normalize(c):
|
|
print(f" Suggestion: '{c}'")
|
|
|
|
print()
|
|
print("=== SEMUA KOLOM CSV ===")
|
|
for i, c in enumerate(cols):
|
|
print(f"{i}: {c}")
|