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.

Obtener el nombre del país de una columna de un dataframe mediante la comparación con una lista.

Cómo obtener el nombre del país de una columna del dataframe al comparar con una lista de cadenas que contienen nombres de países?

Por ejemplo:

lista = ["pakistan","reino unido","uk","eeuu","estados unidos","eau"]

Crear una columna en el dataframe llamada “job_location” del empleado.

df = pd.DataFrame({
        'job_location' : ['birmingham, inglaterra, reino unido','nueva jersey, estados unidos','gilgit-baltistan, pakistan','eau','estados unidos','pakistan','31-c2, gulberg 3, lahore, pakistan'],
    })
df 
job_location
0   birmingham, inglaterra, reino unido
1   nueva jersey, estados unidos
2   gilgit-baltistan, pakistan
3   eau
4   estados unidos
5   pakistan
6   31-c2, gulberg 3, lahore, pakistan

Necesito una nueva columna en el dataframe llamada “country” que contenga el nombre del país de la columna “job_location”.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Un enfoque para obtener el nombre del país de una columna de un dataframe mediante la comparación con una lista de cadenas que contienen nombres de países es el siguiente:

    Paso 1: Definir la lista de nombres de países

    country_list = ["pakistan", "reino unido", "uk", "eeuu", "estados unidos", "emiratos árabes unidos"]
    

    Paso 2: Definir una función para extraer el nombre del país de una cadena dada

    import re
    
    def obtener_nombre_pais(texto):
        for pais in country_list:
            if re.search(pais, texto, re.IGNORECASE):
                return pais
        return None
    

    Esta función utiliza expresiones regulares para buscar una coincidencia entre la cadena dada y los nombres de países de la lista. Si se encuentra una coincidencia, se devuelve el nombre del país correspondiente. De lo contrario, la función devuelve None.

    Paso 3: Aplicar la función a la columna job_location del dataframe y crear una nueva columna con los nombres de los países

    df["país"] = df["job_location"].apply(lambda x: obtener_nombre_pais(x))
    

    Este código aplica la función obtener_nombre_pais a cada fila de la columna job_location utilizando el método apply del dataframe de pandas. El resultado se almacena en una nueva columna llamada “país”.

    El resultado final debería verse así:

    df
                                   job_location                  país
    0       birmingham, inglaterra, reino unido      reino unido
    1                    nueva jersey, estados unidos  estados unidos
    2             gilgit-baltistán, pakistán         pakistán
    3                                        eau                       eau
    4                                  estados unidos  estados unidos
    5                                        pakistán         pakistán
    6  31-c2, gulberg 3, lahore, pakistán             pakistán
    

Comments are closed.