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