es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Estoy leyendo de un archivo CSV y termino con una cadena dentro de una cadena (algo así como esto ” “88456” ‘). ¿Cómo extraigo el valor int?

He intentado usar int(targetVar), int(int(targetVar)), int(float()), map y ahora estoy atascado.

Mi código se ve así:

graph = []
nodes = []

file = open(path)
for line in file:
    source, target = line.split(',')

    nodes.append(int(source))
    nodes.append(int(target))
    graph.append(source, target)

Aquí, file es un archivo csv con entradas como “84424”, “276”.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Basándonos en el código proporcionado, parece que el problema es convertir los valores leídos del archivo csv (que son cadenas) en enteros. El código ya utiliza la función int() para convertir las variables source y target de cadenas a enteros antes de agregarlas a la lista de nodes. Sin embargo, no está claro por qué el código intenta agregar source y target como una tupla a la lista de graph, sin convertirlos primero a enteros.

    En cualquier caso, si la función int() no está funcionando como se espera, hay otras opciones que podrían probarse. La función float() podría usarse para convertir las cadenas a números de punto flotante primero, y luego se podría aplicar la función int() para redondearlos a enteros. Por ejemplo:

    source, target = line.split(',')
    nodes.append(int(float(source)))
    nodes.append(int(float(target)))
    graph.append((int(float(source)), int(float(target))))
    

    Alternativamente, se podría utilizar la función map() para aplicar la función int() a cada elemento de la línea dividida de una vez:

    source, target = map(int, line.split(','))
    nodes.append(source)
    nodes.append(target)
    graph.append((source, target))
    

    No está claro en la pregunta si ya se probaron estos enfoques y fallaron, o si simplemente son sugerencias para probar a continuación. En cualquier caso, probar cada enfoque con algunos datos de muestra y examinar cualquier mensaje de error o comportamiento inesperado podría ayudar a identificar el problema y encontrar una solución.

Comments are closed.