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

2024-06-25 23:28:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我想合并两个数据帧

数据帧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
......

我尝试了这个方法,但是“finish position”值在合并的df中都被更改为NAN

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

Tags: 数据namepydatesabarplacenum
2条回答

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

我复制了您的流程并获得了以下数据帧:

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

这就是你要找的

此时,我建议检查其中一个数据帧是否被正确解析

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

可能dataframe2没有[Name]为“yui”的行,因此它显示为“NaN”

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

相关问题 更多 >