class method constructor to create an Ensemble from
        a pandas.DataFrame

        Parameters
        ----------
        **kwargs : dict
            optional args to pass to the
            Ensemble Constructor.  Expects 'df' in kwargs.keys()
            that must be a pandas.DataFrame instance

        Returns
        -------
            Ensemble : Ensemble

def from_dataframe(cls,**kwargs):
        """class method constructor to create an Ensemble from
        a pandas.DataFrame

        Parameters
        ----------
        **kwargs : dict
            optional args to pass to the
            Ensemble Constructor.  Expects 'df' in kwargs.keys()
            that must be a pandas.DataFrame instance

        Returns
        -------
            Ensemble : Ensemble
        """
        df = kwargs.pop("df")
        assert isinstance(df,pd.DataFrame)
        df.columns = [c.lower() for c in df.columns]

        mean_values = kwargs.pop("mean_values",df.mean(axis=0))
        e = cls(data=df,index=df.index,columns=df.columns,
                mean_values=mean_values,**kwargs)

        return e