当前位置: 首页 > 知识库问答 >
问题:

从另一个数据帧中查找匹配的元素并返回其ID-python

逄兴昌
2023-03-14

我有一个订单数据帧:

我有另一个唯一的菜单项数据帧,它有自己的特定ID:

现在我要匹配元素,并通过在orders数据帧中打印其chat_id来返回其ID

共有1个答案

都阳
2023-03-14

您有数据帧df_ordersId:

            items        chat_id
0  curd,vada,rice  74374374h4473
1     idly,sambar  7949759459h34

和数据帧df_menu:

   id   items
0   1    idly
1   2    vada
2   3    rice
3   4    curd
4   5  sambar

然后:

df_orders["items"] = df_orders["items"].str.split(",")
df_orders = df_orders.explode("items")
print(df_orders.merge(df_menu, on="items")[["chat_id", "id"]])

打印:

         chat_id  id
0  74374374h4473   4
1  74374374h4473   2
2  74374374h4473   3
3  7949759459h34   1
4  7949759459h34   5
 类似资料:
  • 我有两个数据帧,一个包含数据,第二个包含代码及其解码值。我想将df1[代码]与df2[代码]匹配,并将df2[值]粘贴在df1中。需要注意的是,我的第二个数据帧包含代码和值一次,基本上是一张代码和值,但在第一个数据帧中,代码是重复的,因此将粘贴的值列应该代表每次代码出现在df1[代码]列中时的值。 我需要: 基本上是从第二个数据帧转换一个数据帧中的代码。

  • 我有2个熊猫数据框 df1= df2= 我想使用df2“类”列中的可能值搜索df1中的“课程”列,然后返回适当的合计权重。 这是我目前所知道的 导致 我怎样才能得到这样的东西 任何帮助都将不胜感激。谢谢

  • 我有一个包含100,000行(人)和500列(概率)的数据集,我想用测试概率扫描各列,以找到大于和最接近测试值的列标题(a、b或c ),并将标题记录在新列中。 以数据表为例: 新列将记录“a”(0.1 我最初做它作为一个矩阵,而不是data.table.下面的代码不会工作,但给出了一个想法,它是如何运作的 如何跨 data.table 中的列执行此匹配。我认为我需要使用 来自 的查询。但不确定如何

  • 我有两个这样的数据帧: DF1: DF2: 当我left_outer或内连接df1和df2时,我希望得到的数据帧如下: 当我加入时,id 1是c1、c2还是c3并不重要;但我只需要一张唱片。 请让我知道如何才能在火花中实现这一点。 谢谢你,约翰

  • 如何移除第一个数组但返回减去第一个元素的数组 在我的示例中,当删除第一个元素时,我应该得到

  • 我有两个数据帧,希望比较它们并返回第一个数据帧(df1)中不在第二个数据帧(df2)中的行。我找到了一种比较它们并返回差异的方法,但无法找出如何只返回df1中缺失的部分。