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 methodDataFrame.joinLeft(other, joinCol)— left join as a direct methodDataFrame.joinRight(other, joinCol)— right join as a direct methodDataFrame.joinOuter(other, joinCol)— outer join as a direct methodDataFrame.join()now respects thehowoption ("inner"|"left"|"right"|"outer")
Changed¶
DataFrame.join()dispatches to the appropriate typed join method based onhow(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" annotationrows.ts(access):retrieveRowAsArray()missing values returnundefinednotnull; removed stale"series"format fromgetRow()example;getRowAsSeries()now documented as returningMaprows.ts(transform):sort()null placement differs between ascending and descending; removed orphaned docstring fragmentcolumns.ts(access): removed"series"fromgetColumn()format descriptioncolumns.ts(transform):withColumn()only adds new columns (throws on existing);select()/drop()accept arrays of stringsgroupby.ts: fixedcount()example expected values; fixedfromDataFrameData()variadic param; added docstrings togetGroup(),keys(),entries(),size()combine.ts:join()arrayonuses first element only; added@throwstoconcatVertical()/concatHorizontal()statistics.ts:describe()only computes count/mean/min/max (not std/quartiles);fillna()also replaces empty strings;pivot()key namecolumnsnotheadersdataframe.ts:namegetter example; removed"series"from format options;explodeByHeaders()missing@param baseHeaders; added@throwstotranspose(),fromCSV(),fromJSON()- Removed
DataFrame.copy()— its shallow-copy semantics were misleading since the implementation always performed a deep copy viafromMap()
Is It Safe to Upgrade?¶
- Breaking Changes: Yes
-
Backward Compatible: No
-
DataFrame.copy()has been removed. Replace any calls todf.copy()withdf.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()andfromJSON()are not yet implemented.transpose()is not yet implemented.
Next Steps¶
- Multi-column join support
- Implementation of
fromCSV()andfromJSON() - Expand test coverage for join operations