TIF_E41253310/scripts/checks/diagnose_2025_csv.py

28 lines
1.2 KiB
Python

import pandas as pd
import glob
print("=== INSPEKSI FILE 2025 ===")
for f in sorted(glob.glob("Data_Tracerstudy/*2025*")):
ext = f.split('.')[-1]
if ext == 'csv':
try:
df = pd.read_csv(f, sep=';', encoding='utf-8-sig')
non_empty = df.dropna(how='all')
# find nim col
nim_col = [c for c in df.columns if 'nim' in c.lower()]
valid_nim = df[nim_col[0]].dropna() if nim_col else []
valid_nim_clean = [x for x in valid_nim if str(x).strip() not in ['', 'nan']]
print(f"CSV {f}: total_rows={len(df)}, non_empty_rows={len(non_empty)}, valid_nims={len(valid_nim_clean)}")
except Exception as e:
print(f"CSV {f} ERROR: {e}")
elif ext == 'xlsx':
try:
df = pd.read_excel(f)
non_empty = df.dropna(how='all')
nim_col = [c for c in df.columns if 'nim' in c.lower()]
valid_nim = df[nim_col[0]].dropna() if nim_col else []
valid_nim_clean = [x for x in valid_nim if str(x).strip() not in ['', 'nan']]
print(f"XLSX {f}: total_rows={len(df)}, non_empty_rows={len(non_empty)}, valid_nims={len(valid_nim_clean)}")
except Exception as e:
print(f"XLSX {f} ERROR: {e}")