如何通过字符串列表过滤熊猫列?

时间:2019-04-01 16:45:20

标签: python pandas list

用于过滤熊猫的标准代码如下:

output = df['Column'].str.contains('string')
strings = ['string 1', 'string 2', 'string 3']

虽然不是'string',但我想进行过滤,使其通过列表中的字符串集合“ strings”。所以我尝试了诸如

output = df['Column'].str.contains('*strings')

这是我能找到的最接近的解决方案,但是没有用 How to filter pandas DataFrame with a list of strings

编辑:我应该注意,我知道|。或运算符。但是,我想知道如何解决实例列表字符串中的所有情况都在变化,并且我正在遍历各种长度变化的列表作为最终目标。

2 个答案:

答案 0 :(得分:1)

您可以创建一个正则表达式字符串并使用该字符串进行搜索。

赞: df['Column'].str.contains('|'.join(strings),regex=True)

答案 1 :(得分:0)

您可能应该考虑使用isin()函数(pandas.Series.isin)。

检查以下代码:

    df = pd.DataFrame({'Column':['string 1', 'string 1', 'string 2', 'string 2', 'string 3', 'string 4', 'string 5']})
    strings = ['string 1', 'string 2', 'string 3']
    output = df.Column.isin(strings)

    df[output]

输出:

        Column
    0   string 1
    1   string 1
    2   string 2
    3   string 2
    4   string 3