[英]How do I match a column entry from one df to a different df; and if they're the same, append another column's entry from the first df to the 2nd df?
背景:
我有两个具有以下设置的数据框:
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。 这意味着它们在被映射时将成为NaN。 并且只要我走到那一步,我就将它们放下。 我不知道这是否相关,但是我只是想添加它以防万一。
题:
我需要在第二个数据帧中追加/加入/放置(这里不知道正确的术语)对应的id2名称,前提是df2的id1条目== id1条目。 我该怎么做呢?
所需的数据帧如下所示:
| 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个条目
鉴于您之后要丢弃丢失的位,这是一个内部联接,可以通过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')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.