首页 > 解决方案 > 如何根据以列表为值的列过滤 Pandas 数据框中的行?

问题描述

我有一个 Pandas 数据框,其中一列存储字符串文字列表。例如,我的数据如下所示。

field1, field2
x1, ['tag1', 'tag2']
x2, ['tag1', 'tag3']

我只想获取此数据field2框中列表包含tag1or的记录tag2。所以,在上面的例子中,只有field1=x1应该返回的记录。

如何对 Pandas 数据框进行此过滤?

标签: pythonpandas

解决方案


您需要tag2在列表中检查field2。使用.apply(),您可以实现这一点。

df[df.apply(lambda x: 'tag2' in x['field2'],axis=1)]

输出:

    field1  field2
0   x1      [tag1, tag2]

推荐阅读