import pandas as pd from pycatastro import PyCatastro # Leer el archivo Excel ruta_archivo = '/home/data3/master_folder/files_uploaded/23_Jaen_Entrega_v2.xlsx' ruta_archivo_modificado = '/home/data3/master_folder/files_uploaded/23_Jaen_Entrega_v2_modificado.xlsx' # Cargar todas las hojas del archivo para ver cuáles hay xls = pd.ExcelFile(ruta_archivo) #print(xls.sheet_names) # Seleccionar la hoja que quieres modificar (por ejemplo, 'Hoja2') df = pd.read_excel(ruta_archivo, sheet_name='Reparos_Proceso') # Ver las primeras filas para confirmar el contenido #print(df.head()) cabeceras = df.columns #print(cabeceras) columna_modificar = "REFCAT14" columna_latitud = "LATITUD_WGS84_4326" columna_longitud = "LONGITUD_WGS84_4326" columna_portal = "PORTAL1_PK" columna_nombre_calle = "NOMBRE_VIA" columna_tipo_via = "TIPO_VIA" no_encontrado_catastro = "##### DE LAS SIGUIENTES DIRECCIONES NO SE HA ENCONTRADO SU REFERENCIA CATASTRAL #####\n" # Suponiendo que quieres modificar la columna 'Nombre_Columna' for (index, fila) in df.iterrows(): # print(fila) # Modificar la columna fila por fila # print(fila[columna_latitud]) # print(fila[columna_longitud]) # print(int(fila[columna_portal])) catastro = PyCatastro.Consulta_RCCOOR_Distancia("EPSG:4326",float(fila[columna_longitud].replace(",",".")),float(fila[columna_latitud].replace(",","."))) # print(catastro) try: prueba_colsulta_coords_distancia = catastro['consulta_coordenadas_distancias'] except: no_encontrado_catastro += f"- La {fila[columna_tipo_via]} {fila[columna_nombre_calle]} numero {fila[columna_portal]} ha fallado por error del número de peticiones a catastro\n" no_encontrado_catastro += " \n" continue if isinstance(catastro['consulta_coordenadas_distancias']['coordenadas_distancias']['coordd']['lpcd']['pcd'], list): referencia_catastral = False for item in catastro['consulta_coordenadas_distancias']['coordenadas_distancias']['coordd']['lpcd']['pcd']: # print(item) direccion = item['ldt'] if direccion and (direccion.find(f" {str(fila[columna_portal])} ") != -1) and ((direccion.lower()).find((f" {str(fila[columna_nombre_calle])} ").lower()) != -1): # if (direccion.find(f" {str(fila[columna_portal])} ") != -1): # print(str(fila[columna_nombre_calle])) # print("Direccion encontrada") # print(direccion.find(f" {str(fila[columna_portal])} ")) # print(direccion) # print(item) referencia_catastral = f"{item['pc']['pc1']}{item['pc']['pc2']}" df.at[index, columna_modificar] = referencia_catastral # print(referencia_catastral) if not referencia_catastral: no_encontrado_catastro += f"- La {fila[columna_tipo_via]} {fila[columna_nombre_calle]} numero {fila[columna_portal]} no ha encontrado su referencia catastral\n" no_encontrado_catastro += " \n" # df.at[index, columna_modificar] = fila[columna_modificar] * 2 # print("--------------------------------------------------------------") # Guardar el archivo modificado (sobrescribir el archivo original o crear uno nuevo) with pd.ExcelWriter(ruta_archivo, engine='openpyxl', mode='a', if_sheet_exists='replace') as writer: df.to_excel(writer, sheet_name='Reparos_Proceso', index=False) with open('catastro_no_encontrado_23_Jaen_Entrega_v2.txt', 'w') as archivo: archivo.write(no_encontrado_catastro)