Home > Software design >  Filtering dataframe based on two column string match count
Filtering dataframe based on two column string match count

Time:02-01

I want to filter data rows based on string from data['Age'] and count atleast two occurence of that pattern "o;", "i;", "twenty;", "a;" in data['Name'].

data = pd.DataFrame({'Name':['To;om', 'ni;cki;', 'krish', 'jack'],'Age':['o', 'i', 'twenty', 'a']})

data
      Name     Age
0    To;om       o
1  ni;cki;       i
2    krish  twenty
3     jack       a

Output should look like this:

      Name     Age  count
0  ni;cki;       i    2

CodePudding user response:

Use df.apply:

In [427]: data[data.apply(lambda x: x['Name'].count(f"{x['Age']};") >= 2, 1)]
Out[427]: 
      Name Age
1  ni;cki;   i
  •  Tags:  
  • Related