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.

Extraer parte de una URL almacenada en una lista dentro de un marco de datos – Python

Estoy intentando extraer solo la parte numérica, en el ejemplo a continuación 25709, y agregarla a una variable, llamada athleteID, que luego puedo agregar a una URL dinámica para iterar y usar para enviar una solicitud de búsqueda:

'<a href="../athletehistory/?athleteNumber=25709" target="_top">Zola Budd</a>'

Tengo una lista de estos URL (o parte URL) almacenados en una lista dentro de un marco de datos y he iterado dos veces sobre este marco de datos usando la función split(‘\=’) y he logrado llevarlo al punto siguiente.

i=[]
id_list=[]
for id in df2['athleteURL']:
i = id.split('\=')
id_list.append(i)
print(id_list)

Lo que produce una lista, una línea como ejemplo a continuación:

'<a href', '"../athletehistory/?athleteNumber', '25709" target', '"_top">Zola Budd</a>'

Luego hice una segunda iteración usando ‘(‘\”‘)’ y lo llevé al siguiente punto:

id_list2=[]

for id2 in id_list[2]:
j = id2.split('\"')
id_list2.append(j)

#print(id_list2[2])

athleteIDnumber = id_list2[2]
print(athleteIDnumber)

['2967288', ' target']

Sin embargo, aquí es donde estoy atascado porque parece ser un elemento dentro de una lista y también estoy seguro de que esta no es la forma más eficiente de extraer esta línea, ya que también tuve dificultades para usar otras funciones de expresiones regulares.

Cualquier consejo o apoyo sería apreciado. Gracias
Chris

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Hola Chris,

    Basado en la información proporcionada, parece que estás intentando extraer el ID del atleta (que es un valor numérico) de una lista de URLs que están almacenadas dentro de un marco de datos.

    Para extraer el ID del atleta de la URL, puedes utilizar el módulo re en Python para buscar el valor numérico dentro de la cadena. Aquí tienes un ejemplo de código que puede ayudarte a lograr esto:

    import re
    
    # Cadena de muestra de URL
    url = '<a href="../athletehistory/?athleteNumber=25709" target="_top">Zola Budd</a>'
    
    # Usa regex para buscar los valores numéricos dentro de la cadena URL
    athleteID = re.findall('\d+', url)
    
    # Convierte el valor extraído en un entero
    athleteID = int(athleteID[0])
    
    # Imprime el valor extraído del ID del atleta
    print(athleteID)
    

    Salida:

    25709
    

    Puedes modificar este código para iterar sobre tu lista de URLs almacenadas dentro del marco de datos y extraer el valor del ID del atleta para cada URL. Luego, puedes almacenar estos valores en una lista por separado (por ejemplo, athleteID_list) que puedes usar más adelante en tus solicitudes de URL dinámicas.

    ¡Espero que esto te ayude! Hazme saber si tienes alguna otra pregunta.

Comments are closed.