df1
0 Name phone Marks
1 mark 1225 20.0
2 charles 165498 36.5
3 oscar 1567 nan
4 bucky 13579 22.0
5 austin 13654 nan
df2
0 Name phone Marks
1 mark 1225 nan
2 charles 165498 nan
3 oscar 1567 25,64,65,78,32
4 bucky 13579 22.0
5 austin 13654 21,989,3,48,6357,649,2
如何以这种方式合并这两个df
0 Name phone Marks
1 mark 1225 20.0
2 charles 165498 36.5
3 oscar 1567 25,64,65,78,32
4 bucky 13579 22.0
5 austin 13654 21,989,3,48,6357,649,2
如果我尝试左合并。我会错过奥斯卡和奥斯汀的标记,如果我尝试正确的话,我会错过马克和查尔斯的标记。也尝试过外部,但无法弄清楚
如何基于名称合并它们?
答案 0 :(得分:3)
您可以简单地做到:
df1.update(df2)
输出:
0 Name phone Marks
1 mark 1225 20
2 charles 165498 36.5
3 oscar 1567 25,64,65,78,32
4 bucky 13579 22.0
5 austin 13654 21,989,3,48,6357,649,2
答案 1 :(得分:1)
我认为使用combine_first
更容易实现 df1 = pd.DataFrame({'A': [None, 0], 'B': [None, 4]})
df2 = pd.DataFrame({'A': [1, 1], 'B': [3, 3]})
df1.combine_first(df2)
答案 2 :(得分:0)
you can also use,
df1.fillna(df2.fillna(df1))