如何合并不同数据框的两列,如果找到匹配项,则使用熊猫在新列中写入“ True”

迪卡卡

我正在做熊猫项目。我有两个类似于波纹管的数据框

DF1 :

Data1    Data2      Data3
Head     Cat        Fire
Limbs    Dog        Snow
Eyes     Fish       Water
Mouth    Dragon     Air


DF2 :

 Data1     Data2      
 Limbs     Dog        
 Mouth     Dragon        
 Head      Cat 

基于上述数据框,我需要比较两个DF,如果找到匹配项,则需要在单独的列中写入“ True”,否则为False

例如:假设,我选择带有组合的DF2第一行(肢体,狗),应该在DF1中进行搜索,因为我们可以看到组合在第二行中退出,然后将DF1的Data3值“ Snow”写入DF2 Data3值。如果找到匹配项,还可以在新列中打印“ True”值。

预期产量

Data1         Data2         Data3   Data4
 Limbs        Dog            Snow    True
 Mouth        Dragon         Air     True
 Head         cat            Fire    True
  Eyes         Fish         Water    False

目前,我已经尝试合并两个数据框

当前代码:

df3 = pd.merge(df, valid_req , on=['Data1','Data2' ])

df3


 Data1         Data2         Data3  
     Limbs        Dog            Snow   
     Mouth        Dragon         Air     
     Head         cat            Fire

如何获得预期的输出?

耶斯列尔

使用DataFrame.merge与左连接和indicator=True参数,然后通过比较新列bothDataFrame.pop用于删除列:

df = df1.merge(df2, on=['Data1', 'Data2'], how='left', indicator=True)
df['Data4'] = df.pop('_merge').eq('both')
print (df)
   Data1   Data2  Data3  Data4
0   Head     Cat   Fire   True
1  Limbs     Dog   Snow   True
2   Eyes    Fish  Water  False
3  Mouth  Dragon    Air   True

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在散列数组中搜索匹配的键值对,如果找到匹配项,则返回true

如果两列中的名称使用正则表达式匹配,则创建返回true / false的新列

如果不是true(!true)

合并两个TRUE / FALSE数据框列,仅保留TRUE

在熊猫中获取布尔数据框的True元素的(索引,列)对

Excel:如果两列中的每个值都匹配,如何返回 True?

为什么在Python中`(True,True,True)== True,True,True`不是True?

如果多列搜索匹配,熊猫返回true吗?

Python:使用 False/True 加入/合并两个带有枢轴函数的熊猫数据框

[True] 中的 [True] 中的 True 输出:False

为什么 Python3 中的 True, True, True == (True, True, True) 给出 o/p True, True, False?

javascript 中 true && true && true && false && true && true && true 的结果是什么?

如何使用数据框中的列中的字符串更改True / False?

如果列中出现足够多的 id,则在数据框中创建 TRUE 列

bash中的“ true”的目的是“如果sudo true; then”

根据等于True的列数选择数据框中的行

如果两列相等且第三列为 True,则在新列中返回布尔值

关于sqlalchemy中的unique = True和(unique = True,index = True)

如果找到节点,则返回True

如何(false == false == true)为true

断言 True 中的奇怪失败是 True

熊猫:如何合并不同的数据框?

'True'与grep或awk匹配

如果语句返回true

如果(Var == True){ }

如果总是返回true

在R数据框中创建布尔列,如果另一列的值逐行更改,则返回true

如果df中的列中存在新列,则创建具有True或False值的列

获取contenteditable = true数据