tutorial seleccionar graficar filtrar espaƱol documentacion datos con columnas columna agregar python pandas merge dataframe

seleccionar - Fusione dos marcos de datos de pandas de Python de diferente longitud, pero mantenga todas las filas en el marco de datos de salida



seleccionar columnas de un dataframe pandas (3)

Parece que estás buscando algo así como unirte a la izquierda. Vea si este ejemplo ayuda: http://pandas.pydata.org/pandas-docs/stable/comparison_with_sql.html#left-outer-join

Básicamente puedes pasar un parámetro para merge() llamado how=''left''

Esta pregunta ya tiene una respuesta aquí:

Tengo el siguiente problema: tengo dos marcos de datos de pandas de diferente longitud que contienen algunas filas y columnas que tienen valores comunes y algunos que son diferentes, como este:

df1: df2: Column1 Column2 Column3 ColumnA ColumnB ColumnC 0 a x x 0 c y y 1 c x x 1 e z z 2 e x x 2 a s s 3 d x x 3 d f f 4 h x x 5 k x x

Lo que quiero hacer ahora es fusionar los dos marcos de datos para que si ColumnA y Column1 tienen el mismo valor, las filas de df2 se agreguen a la fila correspondiente en df1, de esta manera:

df1: Column1 Column2 Column3 ColumnB ColumnC 0 a x x s s 1 c x x y y 2 e x x z z 3 d x x f f 4 h x x NaN NaN 5 k x x NaN NaN

Sé que la fusión es factible a través de

df1.merge(df2,left_on=''Column1'', right_on=''ColumnA'')

pero este comando elimina todas las filas que no son iguales en Column1 y ColumnA en ambos archivos. En lugar de eso, quiero mantener estas filas en df1 y simplemente asignarles NaN en las columnas donde otras filas tienen un valor de df2, como se muestra arriba. ¿Hay una manera suave de hacer esto en los pandas?

¡Gracias por adelantado!



Simplemente puede usar la combinación con el uso en y lista también

result = df1.merge(df2, on=[''Column1''])

Para más información siga el link