Los pandas se fueron al exterior uniendo múltiples marcos de datos en múltiples columnas

Soy nuevo en el uso de DataFrame y me gustaría saber cómo realizar un equivalente SQL de la combinación externa izquierda en varias columnas en una serie de tablas

Ejemplo:

df1: 
Year    Week    Colour    Val1 
2014       A       Red      50
2014       B       Red      60
2014       B     Black      70
2014       C       Red      10
2014       D     Green      20

df2:
Year    Week    Colour    Val2
2014       A     Black      30
2014       B     Black     100
2014       C     Green      50
2014       C       Red      20
2014       D       Red      40

df3:
Year    Week    Colour    Val3
2013       B       Red      60
2013       C     Black      80
2013       B     Black      10
2013       D     Green      20
2013       D       Red      50

Esencialmente quiero hacer algo como este código SQL (tenga en cuenta que df3 no está unido en Year):

SELECT df1.*, df2.Val2, df3.Val3
FROM df1
  LEFT OUTER JOIN df2
    ON df1.Year = df2.Year
    AND df1.Week = df2.Week
    AND df1.Colour = df2.Colour
  LEFT OUTER JOIN df3
    ON df1.Week = df3.Week
    AND df1.Colour = df3.Colour

El resultado debería verse así:

Year    Week    Colour    Val1    Val2    Val3
2014       A       Red      50    Null    Null
2014       B       Red      60    Null      60
2014       B     Black      70     100    Null
2014       C       Red      10      20    Null
2014       D     Green      20    Null    Null

He intentado usar merge and join pero no puedo encontrar la manera de hacerlo en varias tablas y cuando hay varias articulaciones involucradas. ¿Podría alguien ayudarme en esto por favor?

Gracias

Respuestas a la pregunta(2)

Su respuesta a la pregunta