<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 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