首页 > 解决方案 > 如何基于多列合并两个不相等的数据框?

问题描述

我想合并两个数据框。

数据框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'])

标签: pythonpandasdataframe

解决方案


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

我看到dataframe1中的行显示为“yui”,可能只是“yui”。与“yui”不匹配。


推荐阅读