docs: def by_col(cls, df, cols, w=None, inplace=False, pvalue='sim', outvals=None, **stat_kws):
          """
          Function to compute a Join_Count statistic on a dataframe
  
          Arguments
          ---------
          df          :   pandas.DataFrame
                          a pandas dataframe with a geometry column
          cols        :   string or list of string
                          name or list of names of columns to use to compute the statistic
          w           :   pysal weights object
                          a weights object aligned with the dataframe. If not provided, this
                          is searched for in the dataframe's metadata
          inplace     :   bool
                          a boolean denoting whether to operate on the dataframe inplace or to
                          return a series contaning the results of the computation. If
                          operating inplace, the derived columns will be named
                          'column_join_count'
          pvalue      :   string
                          a string denoting which pvalue should be returned. Refer to the
                          the Join_Count statistic's documentation for available p-values
          outvals     :   list of strings
                          list of arbitrary attributes to return as columns from the
                          Join_Count statistic
          **stat_kws  :   keyword arguments
                          options to pass to the underlying statistic. For this, see the
                          documentation for the Join_Count statistic.
  
          Returns
          --------
          If inplace, None, and operation is conducted on dataframe in memory. Otherwise,
          returns a copy of the dataframe with the relevant columns attached.
  
          See Also
          ---------
          For further documentation, refer to the Join_Count class in pysal.esda
          """
          if outvals is None:
              outvals = []
              outvals.extend(['bb', 'p_sim_bw', 'p_sim_bb'])
              pvalue = ''
          return _univariate_handler(df, cols, w=w, inplace=inplace, pvalue=pvalue,
                                     outvals=outvals, stat=cls,
                                     swapname='bw', **stat_kws)