Task: Data-transform-reshape (source dataset: Auto-Tables)

Given a table, predict what python pandas transformation may be needed on the given input table. Valid choices for transformation include: {"stack", "wide_to_long", "transpose", "pivot", "explode", "ffill", "subtitles"}. Note that each of these is a common Python Pandas operator. Some transformations can have parameters. Each transformation and its parameters are describe as follows.
 
- stack: collapse homogeneous cols into rows.
@param (int): stack_start_idx: zero-based starting column index of the homogeneous column-group.
@param (int): stack_end_idx: zero-based ending column index of the homogeneous column-group.
 
- wide_to_long: collapse repeating col-groups into rows.
@param (int): wide_to_long_start_idx: zero-based starting column index of the repeating col-groups.
@param (int): wide_to_long_end_idx: zero-based ending column index of the repeating col-groups.
 
- transpose: convert rows to columns and vice versa.
 
- pivot: pivot repeating row-groups into cols.
@param (int): pivot_row_frequency: frequency of repeating row-groups.
 
- ffill: fill structurally empty cells in tables.
@param (int): ffill_end_idx: zero-based ending column index of the columns to be filled.
 
- explode: convert composite cells into atomic values
@param (int): explode_column_idx: zero-based column index of the column to be exploded.
 
- subtitle: convert table subtitles into a column.
 
OUTPUT the predicted transformation name along with its parameters for the given INPUT table in a JSON, e.g., {"transformation": "stack", "stack_start_idx": 1, "stack_end_idx": 5}. If the input table needs multi-step transformations (e.g, ffill followed by stack), list JSON of each transformation sequentially in a list, e.g., [{"transformation": "ffill", "ffill_end_idx": 1}, {"transformation": "stack", "stack_start_idx": 1, "stack_end_idx": 5}]. No explanation is needed.

## Input:
| Userid   | 1   | 2   | 3   | 4   | 5   | 6   | 7   | 8   | 9   | 10   | 11   | 12   |
|:---------|:----|:----|:----|:----|:----|:----|:----|:----|:----|:-----|:-----|:-----|
| u_1      |     | 3.0 | 4.0 |     | 3.0 |     | 4.0 |     | 1.0 |      |      | 3.0  |
| u_2      | 4.0 | 1.0 |     |     | 2.0 |     |     | 5.0 |     |      |      |      |
| u_3      |     |     |     | 2.0 | 3.0 |     | 5.0 | 2.0 | 0.0 | 2.0  |      |      |
| u_4      | 1.0 |     |     |     |     | 1.0 |     |     | 4.0 |      | 5.0  | 0.0  |
| u_5      | 2.0 | 2.0 |     | 5.0 |     | 1.0 |     |     |     | 0.0  | 1.0  |      |
| u_6      |     | 1.0 |     | 0.0 | 3.0 | 0.0 | 4.0 |     |     |      |      |      |
| u_7      |     |     |     | 5.0 |     |     |     | 5.0 | 3.0 | 4.0  |      |      |
| u_8      | 4.0 |     | 3.0 | 4.0 |     |     |     |     | 4.0 | 1.0  |      | 4.0  |
| u_9      | 1.0 | 4.0 | 2.0 |     |     | 3.0 |     |     | 1.0 | 4.0  |      |      |
| u_10     |     |     | 5.0 | 5.0 | 1.0 | 4.0 |     | 2.0 |     | 3.0  |      |      |
| u_11     |     | 5.0 |     |     | 1.0 |     | 2.0 | 5.0 | 2.0 |      |      |      |
| u_12     |     | 3.0 | 1.0 | 3.0 | 2.0 |     |     |     |     |      |      | 1.0  |

## Output:


source: stackoverflow
label: operator: stack
stack_start_idx: 1
stack_end_idx: 12
alternative_label: operator: transpose
operator: stack
stack_start_idx: 1
stack_end_idx: 12