join(dfToJoin, columnNames, how = "inner") {
        const joinMethods = {
            inner: () => this.innerJoin(dfToJoin, columnNames),
            full: () => this.fullJoin(dfToJoin, columnNames),
            outer: () => this.outerJoin(dfToJoin, columnNames),
            left: () => this.leftJoin(dfToJoin, columnNames),
            right: () => this.rightJoin(dfToJoin, columnNames)
        };
        return joinMethods[how]();
    }
Join two DataFrames.
@param {DataFrame} dfToJoin The DataFrame to join.
@param {String | Array} columnNames The selected columns for the join.
@param {String} [how='inner'] The join mode. Can be: full, inner, outer, left, right.
@returns {DataFrame} The joined DataFrame.
@example
df.join(df2, 'column1', 'full')