Pandas. How to delete a row if value include some letters

Viewed 397

I want to del row if value include some letters: "ing" or "ed".

Original Dataframe

d0 = [{'word':'del', 'count':22}, {'word':'delete', 'count':11},{'word':'deleted', 'count':2},{'word':'deleting', 'count':5}]
df0 = pd.DataFrame(d0)

Desirable DataFrame

d1 = [{'word':'del', 'count':22}, {'word':'delete', 'count':11}]
df1 = pd.DataFrame(d1)

I suppose that can to add column with value include last 3 letter, and next delete row if value == 'ing' or 'ed'. But I don't know how do it and it is not perfect.

1 Answers

You can use str.contains with regex pattern to create boolean mask which can be then used to filter the required rows:

df0[~df0['word'].str.contains(r'(?i)(?:ing|ed)$')]

     word  count
0     del     22
1  delete     11
Related