filter(condition) {
        const func =
            typeof condition === "object"
                ? (row) =>
                      Object.entries(condition)
                          .map(([column, value]) =>
                              Object.is(row.get(column), value)
                          )
                          .reduce((p, n) => p && n)
                : condition;
        const filteredRows = iter(this[__rows__], (row, i) =>
            func(row, i) ? row : false
        );
        return this.__newInstance__(filteredRows, this[__columns__]);
    }
Filter DataFrame rows.
@param {Function | Object} condition A filter function or a column/value object.
@returns {DataFrame} A new filtered DataFrame.
@example
df.filter(row => row.get('column1') >= 3)
df.filter({'column2': 5, 'column1': 3}))