【问题标题】:Check if a string in a one df exists in another df in pandas检查一个df中的字符串是否存在于pandas的另一个df中
【发布时间】:2021-08-18 05:09:38
【问题描述】:

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

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

示例: df1 中的数据:

Conct
ABC_IronMan_x_nmc
xyz

df2 中的数据:

Conct
OPT_IronMan_b_efd
GGH

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

【问题讨论】:

  • 您匹配子串的目标太宽泛了。我们应该只将字符匹配视为匹配吗?子串匹配的可能性太多。先定义一些可行的标准。

标签: python pandas dataframe string-matching


【解决方案1】:

假设我们可以将 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',它可能过于宽泛,在这种情况下,您应该重新定义您的目标。

【讨论】:

    猜你喜欢
    • 2021-02-19
    • 1970-01-01
    • 1970-01-01
    • 2021-08-25
    • 1970-01-01
    • 2020-01-25
    • 1970-01-01
    • 2021-09-19
    • 2020-09-16
    相关资源
    最近更新 更多