def from_pandas(cls, df):
        """Create baloo DataFrame from pandas DataFrame.

        Parameters
        ----------
        df : pandas.frame.DataFrame

        Returns
        -------
        DataFrame

        """
        from pandas import DataFrame as PandasDataFrame, Index as PandasIndex, MultiIndex as PandasMultiIndex

        check_type(df, PandasDataFrame)

        if isinstance(df.index, PandasIndex):
            baloo_index = Index.from_pandas(df.index)
        elif isinstance(df.index, PandasMultiIndex):
            baloo_index = MultiIndex.from_pandas(df.index)
        else:
            raise TypeError('Cannot convert pandas index of type={} to baloo'.format(type(df.index)))

        baloo_data = OrderedDict((column_name, _series_from_pandas(df[column_name], baloo_index))
                                 for column_name in df)

        return DataFrame(baloo_data, baloo_index)