def _concat(self, egdfs):
        """
        Concatenate evaluated group dataframes

        Parameters
        ----------
        egdfs : iterable
            Evaluated dataframes

        Returns
        -------
        edata : pandas.DataFrame
            Evaluated data
        """
        egdfs = list(egdfs)
        edata = pd.concat(egdfs, axis=0, ignore_index=False, copy=False)

        # groupby can mixup the rows. We try to maintain the original
        # order, but we can only do that if the result has a one to
        # one relationship with the original
        one2one = (
            self.keep_index and
            not any(edata.index.duplicated()) and
            len(edata.index) == len(self.data.index))
        if one2one:
            edata = edata.sort_index()
        else:
            edata.reset_index(drop=True, inplace=True)

        # Maybe this should happen in the verb functions
        if self.keep_groups and self.groups:
            edata = GroupedDataFrame(edata, groups=self.groups)
        return edata
Concatenate evaluated group dataframes

        Parameters
        ----------
        egdfs : iterable
            Evaluated dataframes

        Returns
        -------
        edata : pandas.DataFrame
            Evaluated data