<jupyter_start><jupyter_text>TB_POLIZAS **Leyendo las primeras 1M filas para filtrar las columnas útiles**<jupyter_code>for chunk in pd.read_csv(f"../../Data/raw/TB_POLIZAS.tsv", sep="\t",encoding='latin1', chunksize=1000000):
    df_min_polizas = chunk
    break
len(df_min_polizas.columns)
df_min_polizas.head(25)
df_min_polizas["CIF_ID"].nunique()
df_min_polizas["CIF_ID"].isna().sum()
(df_min_polizas.isna().mean()).sort_values(ascending=False)
(df_min_polizas.isna().mean() > .5).sum()<jupyter_output><empty_output><jupyter_text>*Estas 32 columnas por ahora no las vamos a usar al tener >50% de nulls*<jupyter_code>df_min_polizas.loc[:, df_min_polizas.isna().mean() < .5].columns
df_min_polizas.loc[:, df_min_polizas.isna().mean() < .5]
del df_min_polizas<jupyter_output><empty_output><jupyter_text>**Ahora usamos todo el dataset, pero solo con las columnas seleccionadas**<jupyter_code>cols_to_use = ['NUM_SECU_POL', 'NUM_POL1', 
               'FECHA_VIG_POL', 'FECHA_VENC_POL', 'COD_PLAN',
               'COD_PROD', 'COD_COBRO', 'ESTADO_CIVIL_ASEGURADO', 'COD_POSTAL',
               'IMP_BONIFICACION_MES', 'IMP_PREMIO_MES', 'IMP_PRIMA_FACT_MES',
               'IMP_IMPUESTO_MES', 'FECHA_PROCESO', 'MCA_VIGENCIA',
               'COD_COBRO_ANTERIOR', 'COD_MON', 'FECHA_VIG_ORIG_POL', 'MCA_AGRAVANTE',
               'MCA_EMPLEADO',
               'CAPITAL_VEHICULO', 'CAPITAL_ACCESORIOS',
               'CAPITAL_ASEGURADO_COTIZACION', 'COD_RIES', 'ANTIGUEDAD', 'PRENDARIO',
               'NEGOCIO', 'MCA_POLIZA_VIP', 'FECHA_EMI',
               'PORC_COMISION', 'IMP_COMISION_LOCAL', 'CANT_RENOVACION', 'FECHA_ANTIG',
               'ANTIG', 'CLIENTE_SUSCRIPTO', 'FECHA_VIG_POL_NPO', 'SEGMENTO',
               'SEGMENTO_2', 'COD_ZONA_CASCO', 'PROXIMA_FECHA_RENOV', 'NEGOCIO_DESC',
               'COD_SITUACION', 'CLAU_AJUSTE', 'COEF_POL',
               'RULE_ID_RESPUESTA', 'CIF_ID', 'SEGMENTO_CLIENTE']
chunks = pd.read_csv(f"../../Data/raw/TB_POLIZAS.tsv", 
                     sep="\t",
                     encoding='latin1',
                     decimal=",",
                     usecols=cols_to_use,
                     chunksize=1000000)

df_polizas = pd.concat(chunks)
df_polizas.dtypes
to_int = ["CIF_ID",
          "COD_PLAN",
          "ANTIGUEDAD",
          "CANT_RENOVACION",
          "ANTIG",
          "COD_ZONA_CASCO",
          "RULE_ID_RESPUESTA"]

df_polizas[to_int] = df_polizas[to_int].astype("Int64")
fechas = [col for col in df_polizas.columns if "FECHA" in col]
df_polizas[fechas].head(10)
df_polizas[fechas] =  pd.to_datetime(df_polizas[fechas].stack(), format="%d/%m/%Y").unstack()
df_polizas.dtypes
df_polizas.head(5)
df_polizas["COD_PLAN"].value_counts()<jupyter_output><empty_output><jupyter_text>*Guardo todo en feather* **PROBLEMA: Pyarrow no soporta nullable ints de pandas. Los paso a float**<jupyter_code>df_polizas[to_int].isna().sum()
df_polizas[to_int] = df_polizas[to_int].astype("float64")
df_polizas.to_feather("../Datasets/polizas.feather")<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.1464863081491257, 'fraction_numerical': 0.011547344110854504, 'mean_word_length': 3.8512, 'pattern_counts': {'":': 0, '<': 19, '<?xml version=': 0, '>': 19, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '4', 'dir': 'jupyter-structured-clean-dedup', 'id': '213476', 'license': 'BSD-3-Clause', 'n_tokens_mistral': 1334, 'n_tokens_neox': 1286, 'n_words': 159, 'path': 'notebooks/1. Analysis/.ipynb_checkpoints/3 - Analizando dataset nuevo TB_POLIZAS-checkpoint.ipynb', 'repo_name': 'Voolkia/ML', 'size': '3031'}