code: def _if(cls, verb):
          
          pred = verb.predicate
          data = verb.data
          groups = set(_get_groups(verb))
  
          # force predicate
          if isinstance(pred, str):
              if not pred.endswith('_dtype'):
                  pred = '{}_dtype'.format(pred)
              pred = getattr(pdtypes, pred)
          elif pdtypes.is_bool_dtype(np.array(pred)):
              # Turn boolean array into a predicate function
              it = iter(pred)
  
              def pred(col):
                  return next(it)
  
          return [col for col in data
                  if pred(data[col]) and col not in groups]
docs: A verb with a predicate function