python - 如何迭代 pandas 列中的列表以查找匹配项?

标签 python pandas dataframe numpy match

我有一个术语列表,想查找是否有与特定单词匹配的内容

<表类=“s-表”> <标题> 元 <正文> ['家'、'杂货'、'蛋糕'] ['家'、'杂货'、' cookies '、'奥利奥']

我正在尝试从此列表中查找匹配项: 术语列表 = ['蛋糕', ' cookies ']

预期输出:

<表类=“s-表”> <标题> 元 B 列 <正文> ['家'、'杂货'、'蛋糕'] 正确 ['家'、'杂货'、' cookies '、'奥利奥'] 正确

最佳答案

您可以使用 intersection :

terms = {'cake', 'biscuit'}

df['Column B'] = [bool(set(x)&terms) for x in df['meta']]

如果大小写不重要(例如 'Biscuit'/'biscuit'),请使用 str.lower 将字符串设为小写。 (或str.casefold):

df['Column B'] = [bool(set(map(str.lower, x))&terms) for x in df['meta']]

输出:

                             meta  Column B
0           [Home, grocery, cake]      True
1  [Home, grocery, Biscuit, Oreo]      True

关于python - 如何迭代 pandas 列中的列表以查找匹配项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75984556/

相关文章:

python - 为什么 tf.Variable 可迭代但不能迭代

python - 用点 Pandas 替换逗号

python - 如何使用 pandas python 合并数据帧?

python - 根据 pandas 中的另一个列值突出显示一个列值

python - 基于包含值的其他列复制行,然后返回具有拆分列值的行

python - Tensorflow 2.0 未使用所有 CPU 核心

java - 语言查询和字数统计开源库 (LIWC)

python - 有没有更简单的方法从Python中的字符串中减去季度(3个月)?

python - 数据框:创建新的数据框,在多列的基础上保持重复超过 2 次(时间限制)

apache-spark - 在pyspark中将rdd转换为没有模式的数据帧