如何将一个df中的列条目与另一个df匹配;如果它们是相同的,将另一列的条目从第一个df附加到第二个df?

2024-09-29 17:15:02 发布

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

上下文:

我有两个数据帧,设置如下:

df1看起来像这样…并且继续大约3500行:

| id1 | id2   | 
|:----|------:|
| a   | name1 |  
| b   | name2 | 
| c   | name3 | 
| d   | name4 | 
| e   | name5 |   
| f   | name6 |

df2看起来是这样的…大约有4000行和8列

| id1 | ranktrial1   | ranktrial2   | ...
|:----|-------------:|-------------:| ...
| a   | rank1        |rank1         | ...
| b   | rank2        |rank2         | ...
| c   | rank3        |rank3         | ...
| d   | rank4        |rank4         | ...
| e   | rank5        |rank5         | ...  
| f   | rank6        |rank6         | ...

注1:有些ID1没有ID2。也就是说,当它们被绘制出来时,它们将是南;我一到那一步就把它们扔了。我不知道这是否相关,但我只是想补充一下,以防万一

问题:

如果df2的id1 entry==id1 entry,我需要向第二个数据帧追加/join/place(这里不知道正确的行话)相应的id2名称。我该怎么做

所需的数据帧如下所示:

| id1 | id2   | ranktrial1   | tranktrail2  | ...
|:----|------:|-------------:|-------------:| ...
| a   | name1 | rank1        | rank1        | ...  
| b   | name2 | rank2        | rank2        | ...
| c   | name3 | rank3        | rank3        | ...
| d   | name4 | rank4        | rank4        | ...
| e   | name5 | rank5        | rank5        | ...
| f   | name6 | rank6        | rank6        | ...

我觉得这可能真的很简单,我是一个小傻瓜,因为我是一个新手Python。然而,我并没有能够使用类似问题的回答来实现我的目标。不过,很可能是我的错:p

提前感谢您的帮助

编辑更改了4000个条目-->;4000行。对于3500个条目也是如此


Tags: 数据id2name1id1name2name3name4rank2
1条回答
网友
1楼 · 发布于 2024-09-29 17:15:02

考虑到之后要删除丢失的位,这是一个内部连接,可以通过merge完成。默认情况下,merge使用所有通常命名的列。在本例中,唯一通常命名的列是id1。另外,how='inner'也是默认值

df1.merge(df2)

  id1    id2 ranktrial1 tranktrail2
0   a  name1      rank1       rank1
1   b  name2      rank2       rank2
2   c  name3      rank3       rank3
3   d  name4      rank4       rank4
4   e  name5      rank5       rank5
5   f  name6      rank6       rank6

你可以说得更清楚些

df1.merge(df2, how='inner', on='id1')

相关问题 更多 >

    热门问题