Source: data/utils.js

/**
 * Filter a DataFrame by a matching column and value
 * 
 * @param {DataFrame} dataFrame 
 * @param {string} colName 
 * @param {*} value 
 * 
 * @returns {DataFrame} filtered dataFrame
 */
export function filterDataFrame(dataFrame, colName, value) {
    if (colName in dataFrame.columnMap) {
        const index = dataFrame.columnMap[colName];
        const set = [];
        return dataFrame.filter(function (i, row) {
            let val = row[index];
            if ((value != undefined) && (value != null)) {
                return (value == val);
            } else {
                if (set.includes(val)) return false;
                set.push(val);
                return true;
            }
        });
    }
    return dataFrame.filter(true);
}