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.

¿Existe algún método para verificar si una cadena de texto existe en otro dataframe?

Tengo un dataframe:

nombre ; identificación ; dirección
DR LUCAS FERNÁNDEZ ; NUEVA YORK, AV ST543
JOHN FELLA MD ; CANADÁ CALLE 73663

y tengo otro dataframe como:

nombre ; apellido ; ciudad ; ID_K
LUCAS ; FERNÁNDEZ ; NUEVA YORK ; 987
JAMES ; BRON ; PARÍS ; 7655

Quiero obtener el ID_K del segundo dataframe si “nombre” Y “apellido” (df2) están en “nombre” (df1) Y la ciudad (df2) está en la dirección (df1)

Quiero tener como resultado:

nombre ; identificación ; dirección ; searched_id
DR LUCAS FERNÁNDEZ ; NUEVA YORK, AV ST543 ; 987

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para obtener la salida deseada, podemos realizar una operación de fusión entre los dos dataframes basándonos en las condiciones mencionadas. Aquí está el código para hacer eso:

    merged_df = df1.merge(df2, left_on=[df1['name'].str.lower().str.split().str[-1], df1['address'].str.lower()], 
                           right_on=[df2['lastname'].str.lower(), df2['city'].str.lower()], how='inner')
    output_df = merged_df[['name', 'id', 'address', 'ID_K']].rename(columns={'ID_K': 'searched_id'})
    

    Explicación:

    • Realizamos una operación de fusión entre los dos dataframes basándonos en las siguientes condiciones:
      • El apellido de la columna name en df1 debe coincidir con la columna lastname en df2.
      • La columna address en df1 debe coincidir con la columna city en df2.
    • La función merge() realiza una unión interna entre los dataframes.
    • Seleccionamos las columnas requeridas del dataframe fusionado y renombramos la columna ID_K a searched_id.
    • El dataframe output_df contendrá la salida deseada.

Comments are closed.