christophriepe
christophriepe

Reputation: 1703

How to filter Pandas DataFrame by checking whether a Column contains any String from a List?

Context

I have a Pandas DataFrame and would like to filter it by only including Rows that contain any String from a given List. However, I can't find a solution in the Pandas Documentation.


Code

DataFrame

ID      Names
0       'NameA NameB'
1       'NameB'
2       'NameB NameC'
3       'NameC'
data: pandas.DataFrame = ...
names = ['NameA', 'NameC']

filteredData = data.filter ... # ?

In this example, when filtering, only the Row with ID = 1 should be removed, since it does not contain one the defined Names.


Question

Upvotes: 1

Views: 76

Answers (1)

Bushmaster
Bushmaster

Reputation: 4608

use:

df2=data.loc[data['Names'].str.contains('|'.join(names))]

Upvotes: 3

Related Questions