我刚开始使用DataFrame,我想知道如何在一系列表的多个列上执行与left outer join等价的SQL
示例:
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
本质上,我想做一些类似于此SQL代码的事情(注意,df3不是按年加入的):
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
结果应该是:
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
我试过使用merge和join,但不知道如何在多个表上以及何时涉及多个关节。有人能帮我一下吗?
谢谢
我们还可以使用@tomaugspugger's answer的紧凑版本来实现这一点,比如:
将它们合并为两个步骤,首先是
df1
和df2
,然后将结果合并到df3
。我从df3退学了一年,因为你最后一次加入时不需要它。
相关问题 更多 >
编程相关推荐