首页 > 解决方案 > 如何根据外部列表中的值过滤熊猫数据框?

问题描述

我有以下数据框。我想将 column 中的每个逗号分隔值与中的值进行比较,如果列中存在任何a值,则values返回。希望你理解这个场景。谢谢!Truea

import pandas as pd
values = ['value 1', 'value 2']

df = pd.DataFrame({'a': ['value 1', 'value 1, value 2', 'value 1, value 3', 'value 3', 'value 4', 'value 5']})

                  a
0           value 1
1  value 1, value 2
2  value 1, value 3
3           value 3
4           value 4
5           value 5

我期待这将被退回:

    a
0   True
1   True
2   True
3   False
4   False
5   False

标签: pythonpython-3.xpandas

解决方案


让我们split尝试any

df['b']=df.a.str.split(', ',expand=True).isin(values ).any(1)
df
Out[168]: 
                  a      b
0           value 1   True
1  value 1, value 2   True
2  value 1, value 3   True
3           value 3  False
4           value 4  False
5           value 5  False

推荐阅读