如何基于一个公共列但不同的内容合并/扩展两个python数据帧?
我想合并两个数据帧,但没有得到正确的结果。 df1如下所示:如何基于一个公共列但不同的内容合并/扩展两个python数据帧?,python,pandas,dataframe,merge,Python,Pandas,Dataframe,Merge,我想合并两个数据帧,但没有得到正确的结果。 df1如下所示: Date Name1 0 2018-08-05 abc 1 2019-08-05 cdsx 2 2020-08-05 sdfs Date Name1 Name2 0 2017-06-02 NaN dfdds 1 2018-08-05 abc NaN 2 2018-09-17 NaN hger 3 2019-08-05 cdsx NaN 4
Date Name1
0 2018-08-05 abc
1 2019-08-05 cdsx
2 2020-08-05 sdfs
Date Name1 Name2
0 2017-06-02 NaN dfdds
1 2018-08-05 abc NaN
2 2018-09-17 NaN hger
3 2019-08-05 cdsx NaN
4 2020-08-05 sdfs NaN
像这样的df2
Date Name2
0 2017-06-02 dfdds
1 2018-09-17 hger
我想合并这两个数据帧,得到如下df3:
Date Name1
0 2018-08-05 abc
1 2019-08-05 cdsx
2 2020-08-05 sdfs
Date Name1 Name2
0 2017-06-02 NaN dfdds
1 2018-08-05 abc NaN
2 2018-09-17 NaN hger
3 2019-08-05 cdsx NaN
4 2020-08-05 sdfs NaN
df1和df2有一个公共列:Date,但没有相同的信息
我尝试使用“合并”,但没有得到正确的结果
有谁能给我一些解决这个问题的建议吗?使用外部和
排序=True
:
print( pd.merge(df1, df2, on='Date', how='outer', sort=True) )
印刷品:
Date Name1 Name2
0 2017-06-02 NaN dfdds
1 2018-08-05 abc NaN
2 2018-09-17 NaN hger
3 2019-08-05 cdsx NaN
4 2020-08-05 sdfs NaN
使用outer和
sort=True
:
print( pd.merge(df1, df2, on='Date', how='outer', sort=True) )
印刷品:
Date Name1 Name2
0 2017-06-02 NaN dfdds
1 2018-08-05 abc NaN
2 2018-09-17 NaN hger
3 2019-08-05 cdsx NaN
4 2020-08-05 sdfs NaN