[Autoloop] [Autoloop: build-tsb-pandas-typescript-migration]#114
Closed
github-actions[bot] wants to merge 15 commits intomainfrom
Closed
[Autoloop] [Autoloop: build-tsb-pandas-typescript-migration]#114github-actions[bot] wants to merge 15 commits intomainfrom
github-actions[bot] wants to merge 15 commits intomainfrom
Conversation
Implements pandas missing-value utilities as standalone exported functions: - `isna` / `notna` / `isnull` / `notnull` — detect missing values in scalars, Series, and DataFrames (mirrors pd.isna / pd.notna) - `ffillSeries` / `bfillSeries` — forward/backward fill for Series with optional `limit` parameter - `dataFrameFfill` / `dataFrameBfill` — column-wise or row-wise fill for DataFrames with optional `limit` and `axis` parameters Metric: 28 → 29 pandas_features_ported Run: https://github.com/githubnext/tsessebe/actions/runs/24263385922 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Implements pctChangeSeries() and pctChangeDataFrame() mirroring pandas.Series.pct_change() / pandas.DataFrame.pct_change(). - periods: configurable lag (positive = backward, negative = forward) - fillMethod: "pad" (default), "bfill", or null (no fill) - limit: cap consecutive fills - axis: column-wise (default) or row-wise for DataFrame Full test coverage: unit tests, edge cases, and fast-check property tests. Interactive playground page at playground/pct_change.html. Run: https://github.com/githubnext/tsessebe/actions/runs/24266545401
Run: https://github.com/githubnext/tsessebe/actions/runs/24281202174 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Run: https://github.com/githubnext/tsessebe/actions/runs/24282208612 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Run: https://github.com/githubnext/tsessebe/actions/runs/24282791339 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…g for Series and DataFrame Run: https://github.com/githubnext/tsessebe/actions/runs/24283807306 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- stats/duplicated.ts: duplicatedSeries, duplicatedDataFrame, dropDuplicatesSeries, dropDuplicatesDataFrame with keep='first'/'last'/false and subset support - core/sample.ts: sampleSeries, sampleDataFrame with n/frac, replace, weighted sampling, and seeded RNG (randomState) - 35 tests each (unit + fast-check properties) - Playground pages: duplicated.html, sample.html Run: https://github.com/githubnext/tsessebe/actions/runs/24285279820 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- stats/clip_advanced.ts: clipAdvancedSeries, clipAdvancedDataFrame with per-element bounds from scalar, array, Series (positional), or DataFrame (element-wise). DataFrame bounds support axis=0/1 for Series broadcasting. - stats/apply.ts: applySeries, mapSeries (function/dict/Map), applyDataFrame (reduce per col/row), applyExpandDataFrame (transform per col/row → DataFrame), mapDataFrame (element-wise). Helper decomposition satisfies Biome complexity rules. - 25+ unit + property-based tests each (fast-check) - Playground pages: clip_advanced.html, apply.html - Creates canonical branch autoloop/build-tsb-pandas-typescript-migration from iter 199 Run: https://github.com/githubnext/tsessebe/actions/runs/24287426738 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- stats/cut.ts: cut() for equal-width or user-defined bins, qcut() for quantile bins - cutCodes() returns integer bin codes; cutCategories() returns label arrays - CutOptions: right, labels, retbins, precision, includeLowest, ordered - QcutOptions: labels, retbins, precision, duplicates (raise/drop) - 30+ unit tests + fast-check property tests - Playground page: cut.html (8 interactive demos) - Export from stats/index.ts and src/index.ts Run: https://github.com/githubnext/tsessebe/actions/runs/24288003426 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…range Add `stats/interval.ts` with: - `Interval` class — single bounded interval with all four closed types (left/right/both/neither) - `IntervalIndex` — ordered array of intervals with fromBreaks, fromArrays, fromIntervals factories - `intervalRange()` — equal-length interval ranges by period count or step size - Lookup: indexOf, overlapping, append, isMonotonic - 60+ unit tests + fast-check property tests - Playground page interval.html (8 interactive demos) Run: https://github.com/githubnext/tsessebe/actions/runs/24288493950 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Run: https://github.com/githubnext/tsessebe/actions/runs/24289114918 Add `stats/get_dummies.ts` with: - `getDummies(data, options?)` — one-hot encode a Series or DataFrame (unified API) - `getDummiesSeries` — encode a single Series into binary indicator columns - `getDummiesDataFrame` — encode categorical columns in a DataFrame - `fromDummies(df, options?)` — reverse one-hot encoding back to a categorical Series Options: prefix, prefixSep, dummyNa, columns (DataFrame), dropFirst, dtype 45+ unit + fast-check tests. Playground page get_dummies.html (8 interactive demos). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add stats/crosstab.ts with crosstab() and crosstabSeries(): - Frequency count of co-occurrences of two factor arrays/Series - Custom aggfunc (count/sum/mean/min/max) with values parameter - margins: adds All row/column with totals - normalize: all/index/columns proportion tables - dropna: exclude/include null factor values 21 tests (unit + property-based) all pass. Lint clean. Metric: 43 (previous best: 42, delta: +1). Run: https://github.com/githubnext/tsessebe/actions/runs/24290127464 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Implements reshape/pivot_table.ts with full pandas.pivot_table() parity: - All aggfuncs: mean, sum, min, max, count, first, last - margins=true adds All row/column using raw data (not cell aggregates) - margins_name to customize the All label - sort option (default true) for lexicographic row/column ordering - fill_value and dropna support - Multiple index/column columns supported Tests: 25 unit tests + 4 property-based tests (fast-check) Playground: playground/pivot_table.html with 8 interactive demos Metric: 44 (previous best: 43, delta: +1) Run: https://github.com/githubnext/tsessebe/actions/runs/24290574060 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Implements pandas.DataFrame.explode / Series.explode: - explodeSeries: expand array-valued cells into individual rows - explodeDataFrame: explode one or more columns, repeating other columns - ignore_index option to reset to RangeIndex - Handles null, empty arrays, scalars, multi-column explosion (zip-longest) - 27 unit tests + property-based tests (fast-check) - Playground page with 8 interactive demos Run: https://github.com/githubnext/tsessebe/actions/runs/24291234244 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
Author
|
Warning The 🤖 Iteration 211 — ✅ Accepted
|
Contributor
|
Closing — superseded by #120 (the most complete migration PR). |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🤖 Autoloop: build-tsb-pandas-typescript-migration
Goal: Build tsb — a complete TypeScript port of pandas, one feature at a time.
Current Status
Recent Changes (Iter 210)
reshape/explode.ts— explodeSeries and explodeDataFrame: list-cell expansion into individual rows. Supports multi-column explosion, ignore_index, null/empty handling.🤖 This PR is maintained by Autoloop. Each accepted iteration adds a commit to this branch.