检查一个df中的字符串是否存在于pandas中的另一个df中

时间:2021-05-30 18:21:43

标签: python pandas dataframe string-matching

我有 2 个数据帧(df1 和 df2)。两个数据框中的一个公共列是“Conct”,它是多列的串联。目标是查找 df1 中的任何字符串是否存在于 df2 中。

我尝试使用合并,isin .. 但都在寻找完全匹配。

示例: df1 中的数据:

<头>
联系
ABC_钢铁侠_x_nmc
xyz

df2 中的数据:

<头>
联系
OPT_钢铁侠_b_efd
GGH

在此示例中,我只想获取 df2 中与 df1 中的“IronMan”匹配的那些行

1 个答案:

答案 0 :(得分:0)

假设我们可以通过 '_' 分割 df1 中的字符串,如果我们只是在寻找包含任何这些字符串的行

df2[df2['Conct'].apply(lambda x: any([any([string in x for string in row]) for row in df1['Conct'].str.split('_')]))]

但是,这也会在 df1 中查找子字符串,例如 'x',这可能会太宽泛,在这种情况下,您应该重新定义您的目标。

相关问题