F. Reshaping
- Dominant language
- Mojo
- Stars
- 1
- Forks
- 0
- PR merge metrics
- PR metrics pending
Description
16 callables in the top level and method forms: `melt`, `pivot`, `pivot_table`, `stack`, `unstack`, `wide_to_long`, `crosstab`, `get_dummies`, `from_dummies`, `transpose`, `squeeze` and the rest of that family.
This one benefits most from A1 and A2 being finished, because `unstack` and `pivot` are index operations wearing a reshape hat. `unstack` moves an index level into columns, `stack` moves columns into an index level, and both of them produce a `MultiIndex` most of the time. Attempting these before the index work means writing them twice.
### Done when
- [ ] `melt` and `wide_to_long`, which are the pure ones and need no index machinery
- [ ] `stack` and `unstack` including the `level` parameter, the null filling behaviour, and the dtype rules when unstacking produces missing cells
- [ ] `pivot` and `pivot_table`, with `aggfunc`, `margins`, `dropna` and `fill_value`
- [ ] `crosstab`, `get_dummies` and `from_dummies`
- [ ] L3 at 100 percent
### How this is measured
The target above is an L3 rate over this workstream's callables, reported by `pixi run conformance` in [firepanda-compat](https://github.com/tamnd/firepanda-compat) and enforced by the CI ratchet rather than by a person ticking a box. L3 means every parameter takes every one of its values and the combinations that interact are enumerated. The levels are defined in [01-what-100-percent-means.md](https://github.com/tamnd/firepanda-compat/blob/main/docs/specs/01-what-100-percent-means.md), the counts come from [02-the-surface.md](https://github.com/tamnd/firepanda-compat/blob/main/docs/specs/02-the-surface.md), and the ordering argument for this milestone is in [08-m6.md](https://github.com/tamnd/firepanda-compat/blob/main/docs/specs/08-m6.md).
Anything we deliberately will not do goes in the divergence registry with a reason before this issue closes, and a registered divergence still runs and still has to diverge.
Part of #8, milestone M6.
Contributor guide
Research direction
Read the ordering rationale in firepanda-compat/docs/specs/08-m6.md, then review the callable counts and L3 definition in docs/specs/01-what-100-percent-means.md and docs/specs/02-the-surface.md. Run `pixi run conformance` to establish the baseline. Done means the listed reshape callables reach 100% L3, with deliberate divergences registered and still tested.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- pandas
- Domain
- data
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100