Pandas left Outer verbinden mehrere Datenrahmen in mehreren Spalten

Ich bin neu in der Verwendung von DataFrame und möchte wissen, wie ein SQL-Äquivalent des Linksaußen-Joins für mehrere Spalten in einer Reihe von Tabellen ausgeführt wird

Beispiel:

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

Im Wesentlichen möchte ich so etwas wie diesen SQL-Code machen (Beachten Sie, dass df3 nicht im Jahr verbunden ist):

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

Das Ergebnis sollte so aussehen:

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

Ich habe versucht, Merge and Join zu verwenden, kann aber nicht herausfinden, wie dies bei mehreren Tabellen und bei mehreren beteiligten Verbindungen durchgeführt wird. Könnte mir bitte jemand dabei helfen?

Vielen Dank

Antworten auf die Frage(2)

Ihre Antwort auf die Frage