Pandas: combine dos marcos de datos con nombres de columna idénticos

Tengo dos marcos de datos con nombres de columna idénticos e ID idénticos en la primera columna. Con la excepción de la columna ID, cada celda que contiene un valor en un DataFrame contiene NaN en la otra. Aquí hay un ejemplo de cómo se ven:

ID    Cat1    Cat2    Cat3
1     NaN     75      NaN
2     61      NaN     84
3     NaN     NaN     NaN


ID    Cat1    Cat2    Cat3
1     54      NaN     44
2     NaN     38     NaN
3     49      50      53

Quiero fusionarlos en un DataFrame manteniendo los mismos nombres de columna. Entonces el resultado se vería así:

ID    Cat1    Cat2    Cat3
1     54      75      44
2     61      38      84
3     49      50      53

Lo intenté:

df3 = pd.merge(df1, df2, on='ID', how='outer')

Lo que me dio un DataFrame que contiene el doble de columnas. ¿Cómo puedo combinar los valores de cada DataFrame en uno?

Respuestas a la pregunta(3)

Su respuesta a la pregunta