Skip to content

v0.30.1 - Join Type Support and Docstring Fixes (2026-03-22)

What Changed?

This release adds full join type support to DataFrame.join() by introducing four dedicated methods: joinInner, joinLeft, joinRight, and joinOuter. It also includes a comprehensive docstring audit across the torch module, correcting descriptions that did not match the actual implementation.


What's New

Main Feature: Typed Join Methods

What it does: Previously, DataFrame.join() only performed an inner join regardless of the how option. Now all four join types are fully implemented and available both as direct methods and via the how option on join().

How to use it:

TypeScript
const left  = new DataFrame().fromObject({ id: [1, 2, 3], name: ["Alice", "Bob", "Charlie"] });
const right = new DataFrame().fromObject({ id: [1, 2, 4], score: [95, 87, 72] });

// Via how option
const inner = left.join(right, { on: "id", how: "inner" }); // matched rows only
const leftJ = left.join(right, { on: "id", how: "left" });  // all left rows
const rightJ = left.join(right, { on: "id", how: "right" }); // all right rows
const outer = left.join(right, { on: "id", how: "outer" }); // all rows from both

// Or call directly
const result = left.joinLeft(right, "id");

Added

  • DataFrame.joinInner(other, joinCol) — inner join as a direct method
  • DataFrame.joinLeft(other, joinCol) — left join as a direct method
  • DataFrame.joinRight(other, joinCol) — right join as a direct method
  • DataFrame.joinOuter(other, joinCol) — outer join as a direct method
  • DataFrame.join() now respects the how option ("inner" | "left" | "right" | "outer")

Changed

  • DataFrame.join() dispatches to the appropriate typed join method based on how (default: "inner")
  • Unmatched rows in left/right/outer joins are filled with null

Fixed

  • Corrected docstrings across torch submodules where descriptions did not match implementation:
  • manipulation.ts: reset() — removed incorrect "preserve structure" annotation
  • rows.ts (access): retrieveRowAsArray() missing values return undefined not null; removed stale "series" format from getRow() example; getRowAsSeries() now documented as returning Map
  • rows.ts (transform): sort() null placement differs between ascending and descending; removed orphaned docstring fragment
  • columns.ts (access): removed "series" from getColumn() format description
  • columns.ts (transform): withColumn() only adds new columns (throws on existing); select()/drop() accept arrays of strings
  • groupby.ts: fixed count() example expected values; fixed fromDataFrameData() variadic param; added docstrings to getGroup(), keys(), entries(), size()
  • combine.ts: join() array on uses first element only; added @throws to concatVertical()/concatHorizontal()
  • statistics.ts: describe() only computes count/mean/min/max (not std/quartiles); fillna() also replaces empty strings; pivot() key name columns not headers
  • dataframe.ts: name getter example; removed "series" from format options; explodeByHeaders() missing @param baseHeaders; added @throws to transpose(), fromCSV(), fromJSON()
  • Removed DataFrame.copy() — its shallow-copy semantics were misleading since the implementation always performed a deep copy via fromMap()

Is It Safe to Upgrade?

  • Breaking Changes: Yes
  • Backward Compatible: No

  • DataFrame.copy() has been removed. Replace any calls to df.copy() with df.clone() for a full deep copy.


Release Details

  • Date: 2026-03-22
  • Version: v0.30.1
  • gaslamp: version 73
  • pilotlamp: version 30
  • Files Changed: 14
  • Commits:
    • 16bd6c1 fix(torch): expose joinInner, joinLeft, joinRight, joinOuter on DataFrame
    • d302cb0 fix(torch): implement joinInner, joinLeft, joinRight, joinOuter
    • a15cc5f docs(torch): fix dataframe.ts docstrings to match implementation
    • 73967a5 docs(torch): fix statistics.ts docstrings to match implementation
    • 94427d1 docs(torch): fix combine.ts docstrings to match implementation
    • 1a98fe9 docs(torch): fix groupby.ts docstrings to match implementation
    • 3d1f60e docs(torch): fix columns.ts (transform) docstrings
    • e88ab37 docs(torch): fix columns.ts (access) docstrings
    • 39ffdab docs(torch): fix rows.ts (transform) docstrings
    • c51ef3a docs(torch): fix rows.ts (access) docstrings
    • 8375075 docs(torch): fix manipulation docstrings
    • 05bf79a refactor(torch): remove DataFrame.copy()

Known Issues

  • DataFrame.join() only supports a single join column. Multi-column joins are not yet supported.
  • fromCSV() and fromJSON() are not yet implemented.
  • transpose() is not yet implemented.

Next Steps

  • Multi-column join support
  • Implementation of fromCSV() and fromJSON()
  • Expand test coverage for join operations