【问题标题】: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')?

标签: python-3.x pandas jupyter-notebook


【解决方案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 问题。我将编辑我的答案。
猜你喜欢
  • 1970-01-01
  • 2016-06-11
  • 2022-08-19
  • 1970-01-01
  • 2022-11-23
  • 1970-01-01
  • 2017-04-24
  • 1970-01-01
  • 2013-07-27
相关资源
最近更新 更多