我正在做熊猫项目。我有两个类似于波纹管的数据框
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
参数,然后通过比较新列both
与DataFrame.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] 删除。
我来说两句