我有 2 个数据帧(df1 和 df2)。两个数据框中的一个公共列是“Conct”,它是多列的串联。目标是查找 df1 中的任何字符串是否存在于 df2 中。
我尝试使用合并,isin .. 但都在寻找完全匹配。
示例: df1 中的数据:
联系 |
---|
ABC_钢铁侠_x_nmc |
xyz |
df2 中的数据:
联系 |
---|
OPT_钢铁侠_b_efd |
GGH |
在此示例中,我只想获取 df2 中与 df1 中的“IronMan”匹配的那些行
答案 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',这可能会太宽泛,在这种情况下,您应该重新定义您的目标。