/**
* 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);
}