code: def bin(self, *columns, **vargs):
          
          if columns:
              self = self.select(*columns)
          if 'normed' in vargs:
              vargs.setdefault('density', vargs.pop('normed'))
          density = vargs.get('density', False)
          tag = 'density' if density else 'count'
  
          cols = list(self._columns.values())
          _, bins = np.histogram(cols, **vargs)
  
          binned = type(self)().with_column('bin', bins)
          for label in self.labels:
              counts, _ = np.histogram(self[label], bins=bins, density=density)
              binned[label + ' ' + tag] = np.append(counts, 0)
          return binned
docs: Group values by bin and compute counts per bin by column.
  
          By default, bins are chosen to contain all values in all columns. The
          following named arguments from numpy.histogram can be applied to
          specialize bin widths:
  
          If the original table has n columns, the resulting binned table has
          n+1 columns, where column 0 contains the lower bound of each bin.
  
          Args:
              ``columns`` (str or int): Labels or indices of columns to be
                  binned. If empty, all columns are binned.
  
              ``bins`` (int or sequence of scalars): If bins is an int,
                  it defines the number of equal-width bins in the given range
                  (10, by default). If bins is a sequence, it defines the bin
                  edges, including the rightmost edge, allowing for non-uniform
                  bin widths.
  
              ``range`` ((float, float)): The lower and upper range of
                  the bins. If not provided, range contains all values in the
                  table. Values outside the range are ignored.
  
              ``density`` (bool): If False, the result will contain the number of
                  samples in each bin. If True, the result is the value of the
                  probability density function at the bin, normalized such that
                  the integral over the range is 1. Note that the sum of the
                  histogram values will not be equal to 1 unless bins of unity
                  width are chosen; it is not a probability mass function.