如何合并基于多列的两个不相等的数据帧



我想合并两个数据帧。

数据帧1:

Name  Early   Mid   Late    AverageS   Date   Place    Rno   Num   Bar
xyz    32.0  12.2    32       76     20190202   NY      1     4     2
abc    46.0  24.2    96       67     20190802   SA      2     6     2
ghj    29.0  85.2    34       35     20190211   PY      3     2     7
yui.   9.0    5.2    4         5     20191105   AU      4     1     9
......

数据帧2:

Name   Date     Place    Rno   Num   Bar   Finish Position   
xyz    20190202   NY      1     4     2         1
ghj    20190211   PY      3     2     7         4
abc    20190802   SA      2     6     2         2
......

所需数据帧:

Name  Early   Mid   Late    AverageS   Date   Place    Rno   Num   Bar   Finish Position 
xyz    32.0  12.2    32       76     20190202   NY      1     4     2         1
abc    46.0  24.2    96       67     20190802   SA      2     6     2         2
ghj    29.0  85.2    34       35     20190211   PY      3     2     7         4
yui   9.0    5.2    4         5     20191105   AU      4     1     9          NAN
......

我试过了,但在合并的df中,"完成位置"值都更改为NAN。

df = df1.merge(df2,how='left', on=['Name','Bar','Rno','Place','Date','Num'])

正如Vaebhav在注释部分提到的,您的代码是正确的。

我复制了您的流程,得到了以下数据帧:

https://i.stack.imgur.com/RRgeI.png

这就是你想要的。

在这一点上,我建议检查其中一个数据帧是否以某种方式没有正确解析。

请分享更多关于这两个DFs是如何构建的信息。

也许dataframe2没有[Name]为"的行;yui";,因此它显示为";NaN";。

并且我看到数据帧1中的行被显示为"0";是的&";,也许只是";是的"不匹配";yui";。

最新更新