【问题标题】:How to compare two lists of strings in a dataframe for any matches to get a True or False in python?如何比较数据框中的两个字符串列表以获取任何匹配项以在 python 中获得 True 或 False?
【发布时间】:2026-02-22 18:20:03
【问题描述】:

我在由字符串列表组成的数据框中有两列。我想比较列表中的所有项目以查看是否有任何匹配项并返回 True/False(或任何其他标志)列以突出显示任何匹配项。

我试图通过创建集合并逐行比较它们来做到这一点,但我一直得到一个“假”,当它应该返回“真”时(“a”在第一列和第二列,所以它应该是真) .如何比较这两个列表?

df = pd.DataFrame({'one': [['a','bb','b','v'], ['aa','b','c','e']],
                  'two': [['b','aa','a','d'],['b','w','f']]})

df['one'] = df.apply(lambda row: set(row['one']), axis=1)
df['two'] = df.apply(lambda row: set(row['two']), axis=1)

df['check'] = df.apply(lambda row: row['one'] in row['two'], axis=1)

print(df)

我期待一个新列,输出为 True,因为列表中有匹配的项目。

【问题讨论】:

    标签: python list dataframe


    【解决方案1】:

    在您的 apply 中使用以下内容

    lambda row: bool(row['one'] & row['two']), axis=1
    

    这里由于row['one']row['two']已经转换为set,&row['one']row['two']之间进行交集运算

    【讨论】:

    • +1 来自我,因为它解决了问题,但它可以使用一点解释来说明为什么它可以帮助 OP 或其他读者理解
    • @G.Anderson,重新加载页面并获得解释。 :D
    最近更新 更多