filter(condition) {
        const mapped = [...this]
            .map(({ group }) => group.filter(condition))
            .filter(group => group.listColumns().length > 0);
        return mapped.length === 0
            ? this.df.__newInstance__([], this.df.listColumns())
            : this.df.__newInstance__(
                  [].concat(...mapped.map(group => group.toCollection())),
                  this.df.listColumns()
              );
    }
Filter a grouped DataFrame.
@param {Function} condition A filter function or a column/value object.
@returns {DataFrame} A new filtered DataFrame.
@example
groupedDF.filter((row,i) => (i === 0));