Boolean-mask selection helpers that mirror the pandas
series[mask] / df[mask] idiom.
keepTrue(series, mask) — keep elements where mask is truthykeepFalse(series, mask) — keep elements where mask is falsyfilterBy(df, mask) — filter DataFrame rows by boolean maskimport { Series, DataFrame, keepTrue, keepFalse, filterBy } from "tsb";
const s = new Series({ data: [10, 20, 30, 40], index: ["a", "b", "c", "d"] });
// Keep elements where mask is true
keepTrue(s, [true, false, true, false]).values; // [10, 30]
// Keep elements where mask is false (complement)
keepFalse(s, [true, false, true, false]).values; // [20, 40]
// Filter DataFrame rows
const df = DataFrame.fromColumns(
{ age: [25, 30, 35, 40], score: [88, 72, 95, 60] },
{ index: ["alice", "bob", "carol", "dave"] },
);
const highScore = df.col("score").values.map((v) => (v as number) >= 80);
filterBy(df, highScore).col("age").values; // [25, 35]
// Use a Series as a mask
const mask = new Series({ data: [true, null, true, false], index: ["a", "b", "c", "d"] });
keepTrue(s, mask).values; // [10, 30] (null treated as false)