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.

left join creando columna_x y columna_y

Hola chicos,

Quiero hacer un left join como se muestra abajo, pero estoy obteniendo date1x, date1y, date2x y date2y. Lo que quiero es reemplazar la columna si existe.

df1 = df1.merge(df2, on='id', how='left')

df1

id, date1, val1, date2
1, ‘2021-03-10’, ‘XEP’, ‘2021-04-10’

df2

id, date1, date2
1, ‘2021-09-03’, ‘2021-09-04’
2, ‘2021-09-05’, ‘2021-09-06’
3, ‘2021-09-07’, ‘2021-09-08’

Resultado df:

1, ‘2021-09-03’, ‘XEP’, ‘2021-09-04’

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para reemplazar las columnas existentes en df1 en lugar de crear nuevas columnas con sufijos “_x” y “_y”, puedes especificar el parámetro “suffixes” en la función merge como una cadena vacía:

    df1 = df1.merge(df2, on='id', how='left', suffixes=['', '']).fillna(df1)
    

    La función fillna se utiliza para llenar los valores faltantes en df1 con los valores correspondientes en df2. Esto debería dar como resultado el resultado deseado:

    id, date1,      val1, date2     
    1,  '2021-09-03', XEP,  '2021-09-04'
    

Comments are closed.