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.

Extrayendo la ruta de los URLs en un DataFrame

Estoy seguro de que la respuesta a esto es simple, simplemente no puedo encontrarla por alguna razón.

Me gustaría extraer la ruta URL de un DataFrame de URLs sin usar un bucle for, ya que esto se ejecutará en más de 1 millón de filas y los bucles son demasiado lentos.

Aquí es donde estoy ahora, lo cual devuelve un objeto con todas las partes de la URL devueltas por urllib:

from urllib.parse import urlparse
d = {'urls': ['https://www.example.com/ex/1','https://www.example.com/1/ex']}
df = pd.DataFrame(data=d)
df
df['urls'].apply(urlparse)

El resultado final deseado es un DataFrame como el siguiente:

d = {'urls': ['https://www.example.com/ex/1','https://www.example.com/1/ex'], 'url_path': ['/ex/1', '/1/ex']}

Si alguien sabe cómo resolver esto, ¡apreciaría la ayuda!

¡Gracias!

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para extraer la ruta URL de un DataFrame de URLs sin utilizar un bucle for y devolver un nuevo DataFrame con las URLs y su respectiva ruta, puedes modificar el código actual de la siguiente manera:

    from urllib.parse import urlparse
    import pandas as pd
    
    # crear el DataFrame
    d = {'urls': ['https://www.example.com/ex/1','https://www.example.com/1/ex']}
    df = pd.DataFrame(data=d)
    
    # definir una función para extraer la ruta URL
    def get_path(url):
        return urlparse(url).path
    
    # aplicar la función a la columna de urls y crear una nueva columna con la ruta extraída
    df['url_path'] = df['urls'].apply(get_path)
    
    # imprimir el DataFrame resultante
    print(df)
    
    

    Esto producirá como resultado:

                              urls  url_path
    0  https://www.example.com/ex/1    /ex/1
    1  https://www.example.com/1/ex   /1/ex
    

    La función get_path utiliza la función urlparse del módulo urllib.parse para extraer la ruta de la URL. Luego, se utiliza el método apply en la columna de urls del DataFrame para aplicar la función get_path a cada URL en la columna. El resultado se almacena en una nueva columna llamada url_path en el mismo DataFrame.

Comments are closed.