keepTrue / keepFalse / filterBy — Boolean Indexing

Boolean-mask selection helpers that mirror the pandas series[mask] / df[mask] idiom.

Interactive Demo

Click a button above to run an example.

Code Examples

import { 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)