我有以下问题:我有两个不同长度的pandas数据框,包含一些具有共同值的行和列,一些不同,如下所示:
df1:df2:
Date NOofIM's Shift Date Shift Engineers
0 3/1/2017 2 3 0 3/1/2017 3 4
1 3/1/2017 3 2 1 4/1/2017 2 4
2 4/1/2017 5 1 2 5/1/2017 2 3
3 5/1/2017 6 1 3 7/1/2017 1 2
4 6/1/2017 4 1
5 7/1/2017 5 1
我现在想要做的是合并两个数据帧,这样如果Date和shift具有相同的值,那么df2中的行应合并/附加到df1中的相应行,如下所示:
DF1:
Date Shift Engineers NOofIM's
0 3/1/2017 3 4 2
1 3/1/2017 2 Nan 3
2 4/1/2017 2 4 Nan
3 4/1/2017 1 Nan 5
4 5/1/2017 1 Nan 6
5 5/1/2017 2 4 Nan
6 6/1/2017 1 Nan 4
7 7/1/2017 1 2 5
答案 0 :(得分:3)
merge
会合并所有常见行。how='outer'
可以容纳第一个和第二个数据框中的遗漏df1.merge(df2, 'outer')
# more explicit with `on`
# df1.merge(df2, on=['Date', 'Shift'], how='outer')
Date NOofIM's Shift Engineers
0 3/1/2017 2.0 3 4.0
1 3/1/2017 3.0 2 NaN
2 4/1/2017 5.0 1 NaN
3 5/1/2017 6.0 1 NaN
4 6/1/2017 4.0 1 NaN
5 7/1/2017 5.0 1 2.0
6 4/1/2017 NaN 2 4.0
7 5/1/2017 NaN 2 3.0