How to delete rows in python pandas DataFrame using regular expressions?

Question:

I have a pattern:

patternDel = "( \((MoM|QoQ)\))";

And I want to delete all rows in pandas dataframe where column df['Event Name'] matches this pattern. Which is the best way to do it? There are more than 100k rows in dataframe.

Asked By: Alexander

||

Answers:

str.contains() returns a Series of booleans that we can use to index our frame

patternDel = "( \((MoM|QoQ)\))"
filter = df['Event Name'].str.contains(patternDel)

I tend to keep the things we want as opposed to delete rows. Since filter represents things we want to delete we use ~ to get all the rows that don’t match and keep them

df = df[~filter]
Answered By: Bob Haffner
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.