""" Diagnostico veloce: ispeziona EM_PSKY_RETE in df_anagr (dalla cache). """ import pickle from pathlib import Path CACHE = Path(__file__).parent / '_cache_anagr.pkl' with open(CACHE, 'rb') as f: df_anagr, df_ediz, df_super = pickle.load(f) col = 'EM_PSKY_RETE' if col not in df_anagr.columns: print(f'Colonna {col} NON trovata in df_anagr') print('Colonne EM_*:', [c for c in df_anagr.columns if c.startswith('EM_')]) else: s = df_anagr[col].dropna() print(f'{col}: {len(s)} valori non-null (su {len(df_anagr)} righe)') # Lunghezze lengths = s.str.len().value_counts().sort_index() print(f'\nDistribuzione lunghezze:') for l, cnt in lengths.items(): print(f' len={l}: {cnt} valori') # Valori > 2 chars too_long = s[s.str.len() > 2] if not too_long.empty: print(f'\nVALORI TROPPO LUNGHI (len>2): {len(too_long)}') print(too_long.value_counts().head(20).to_string()) else: print('\nNessun valore > 2 chars trovato') # Tutti i valori unici print(f'\nValori unici ({s.nunique()}):') print(s.value_counts().to_string()) # Controlla anche le altre colonne EM_*_RETE per confronto print('\n--- Lunghezze max per ogni EM_*_RETE ---') for c in df_anagr.columns: if c.endswith('_RETE') and c.startswith('EM_'): vals = df_anagr[c].dropna() if not vals.empty: max_len = vals.str.len().max() print(f' {c}: max_len={max_len}, esempi={vals.value_counts().head(3).index.tolist()}')