code: def bottom(self, N, mask=NotSpecified, groupby=NotSpecified):
          
          return self.rank(ascending=True, mask=mask, groupby=groupby) <= N
docs: Construct a Filter matching the bottom N asset values of self each day.
  
          If ``groupby`` is supplied, returns a Filter matching the bottom N
          asset values for each group.
  
          Parameters
          ----------
          N : int
              Number of assets passing the returned filter each day.
          mask : zipline.pipeline.Filter, optional
              A Filter representing assets to consider when computing ranks.
              If mask is supplied, bottom values are computed ignoring any
              asset/date pairs for which `mask` produces a value of False.
          groupby : zipline.pipeline.Classifier, optional
              A classifier defining partitions over which to perform ranking.
  
          Returns
          -------
          filter : zipline.pipeline.Filter