在另一个数据框中寻找特定记录匹配[重复]

Posted

技术标签:

【中文标题】在另一个数据框中寻找特定记录匹配[重复]【英文标题】:Looking for specifics records matchs in another dataframe [duplicate] 【发布时间】:2021-09-17 19:39:15 【问题描述】:

我的 df1 如下:

Name    |  ID
________|_____
Banana  |  10
Orange  |  21
Peach   |  115

然后我有一个这样的df2:

ID   Price
10    2.34
10    2.34
115   6.00

我想修改 df2 以添加另一个列名 Fruit 以将其作为输出:

 ID   Fruit     Price
 10   Banana    2.34
 10   Banana    2.34
 115  Peach     6.00
 200  NA        NA

我可以使用 iloc 来获得一个特定的匹配,但是如何在 df2 的所有记录中做到这一点?

【问题讨论】:

所以基本上是pd.merge? 您如何在预期输出中获得 ID='200'? df1.merge(df2,how='outer',on='ID')? 【参考方案1】:

您是否尝试过查看merge 函数?

pd.merge(df1, df2)

输出:

    Name    Id  Price
0   Banana  10  2.34
1   Banana  10  2.34
2   Peach   115 6.00

编辑: 如果您只想从 df2 添加特定列:

df = pd.merge(df1,df2[['Id','Price']],on='Id', how='left')

输出:

Name    Id  Price
0   Banana  10  2.34
1   Banana  10  2.34
2   Orange  21  NaN
3   Peach   115 6.00

【讨论】:

我会试试的。 df1 有 33 列,df2 有 17 列。我只想在 df2 中再添加一列。合并会做到这一点,对吧? 如果您只想将 df2 中的 1 列合并到 df1 中,您应该看看this 问题。我将编辑我的答案。

以上是关于在另一个数据框中寻找特定记录匹配[重复]的主要内容,如果未能解决你的问题,请参考以下文章

从数据框中删除特定行[重复]

如何根据熊猫数据框中的部分匹配来隔离重复项

Pandas:如何根据特定列上特定值的条件选择数据框中的行[重复]

根据索引在熊猫数据框中查找特定列的值[重复]

删除熊猫数据框中具有特定值的行[重复]

如何根据数据框中的列值获取特定的行数[重复]