我想匹配2个数据帧中的字符串,如果找到匹配项,则返回相应的结果。所以我的第一个数据帧包含:
Name
abc
pqr
xyz
第二个数据框包含
Id Name
1 abc
2 lmn
3 pqr
4 qwe
我想通过比较(字符串)名称列来返回ID。此外,如果将abc中的名称与数据框2中的完整名称进行比较,该如何实现相同目的。
下面的代码是我在合并两个数据帧之后尝试的: 该函数将比较字符串并返回差值。
def bit_func(x):
dmp = diff_match_patch()
patches = dmp.patch_make(x.Name1, x.Name2)
diff = dmp.patch_toText(patches)
return diff
并且我尝试了不同,但是代码无法正常工作。而且我还想要名称对应的ID如何返回相同的名称?
df['diff'] = df.apply(bit_func, axis=1)
答案 0 :(得分:1)
您可以只使用pandas merge功能来显示DataFrame和与其关联的ID之间的匹配项:
this.service.postFunction1(body1).subscribe(
res=>{
this.service.postFunction2(body2).subscribe(
res=>{},
err=>{}
)
},
err=>{
/** Stuff here... **/ //Should I stop here the whole thing here?
})
)
输出为:
import pandas as pd
df1 = pd.DataFrame({'Name': ['abc', 'pqr', 'xyz']})
df2 = pd.DataFrame({'Name': ['abc', 'lmn', 'pqr', 'qwe'], 'Id': [1, 2, 3, 4]})
print(df1.merge(df2))
要获取两者之间的区别,请使用以下命令:
Name Id
0 abc 1
1 pqr 3
哪个输出:
df1.merge(df2, how='outer', indicator=True).query('_merge != "both"').drop('_merge', 1)
所有合并查询的参考post