用于过滤熊猫的标准代码如下:
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
编辑:我应该注意,我知道|。或运算符。但是,我想知道如何解决实例列表字符串中的所有情况都在变化,并且我正在遍历各种长度变化的列表作为最终目标。
答案 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