Keep the columns you want, in the order you want
Every column of your file appears as a row you can tick and drag. The ticked ones are kept, in the order they are shown, so choosing and arranging are one gesture rather than two operations. Flip one switch and the ticked ones are dropped instead, which is faster when you want to lose two columns out of forty.
Two operations that are really one
Choosing columns and ordering them are almost always the same job. You are preparing a file for something else: an import that wants specific columns in a specific order, a report where the id belongs on the left, a share with a colleague who does not need the six internal fields.
Most tools split them anyway. A checkbox grid picks the columns and writes them out in the file's original order, and reordering is a separate operation somewhere else, or not offered at all. So you export, open the result in a spreadsheet, and drag columns around by hand, which is the step where a column of postal codes loses its leading zeros.
Here the control is one list. Tick to keep, drag to arrange, and the output is the ticked rows read top to bottom. The arrow buttons beside each row do the same thing without a pointer, because a drag-only interface is unusable with a keyboard or a screen reader, and shipping only the drag would have made this worse than the checkbox grid it replaces.
Worked example
Seven columns in:
order_id,customer_id,order_date,region,product,quantity,amountUntick customer_id, product and quantity, then drag amount up above region:
order_id,order_date,amount,region
1001,2024-01-05,120.50,East
1002,2024-01-06,88.00,West
1003,2024-01-11,240.00,East
...Four columns, in an order that never existed in the input. 120.50 still has both decimal places and 88.00 has not become 88, because the cells were moved rather than parsed. The strip above the result reads 4 of 7 columns kept · 3 dropped · 10 rows unchanged, which is the confirmation worth having: the row count did not move, so this operation did what it said and nothing else.
Keep mode and drop mode
The two modes are the same operation from opposite ends, and which one is less work depends entirely on the shape of the job.
- Kept is right when you know what you want. Five columns out of forty for an import: untick everything, tick the five, drag them into the order the importer's documentation specifies.
- Dropped is right when you know what you do not want. Losing two internal columns out of forty: tick the two, flip the switch, done. In keep mode that would be thirty-eight clicks.
One thing worth knowing: in drop mode the surviving columns come out in the file's original order, and the drag order is ignored. That is deliberate rather than an oversight. Dragging arranges the ticked rows, and in drop mode the ticked rows are the ones leaving, so their arrangement cannot mean anything. If you want to both drop and reorder, use keep mode, or run the file through twice.
What it will not do
- Leave you with no columns. Unticking the last one is refused with a note, and asking to drop all of them is an error rather than an empty file.
- Rename anything. The headers come out exactly as they went in. For renaming, the clean-headers step in a pipeline applies a consistent style, and the full editor renames them one at a time.
- Touch a single value. Cells are carried across as the exact strings they were. Leading zeros survive,
120.50keeps its trailing zero, a long numeric id does not become scientific notation, and a cell holding a comma stays one cell. - Change the row count. This is a columns operation and it says so in the summary strip every time. If the row count moved, something else moved it.
- Deduplicate the result. Dropping the column that made rows unique will leave you with rows that now look identical. They are all still there. Run the output through the deduplicate tool if you wanted them collapsed, so that stays a decision you made rather than one the tool made for you.
Why this is not just a spreadsheet job
Because opening a CSV in a spreadsheet to rearrange its columns is the single most reliable way to damage it. The spreadsheet parses every cell on the way in and re-serializes it on the way out, and in between it applies its own opinions:
01234becomes1234, because it looks like a number with a pointless zero in front.120.50becomes120.5, because the trailing zero is not significant to a float.- A sixteen-digit account number becomes
1.23457E+15, because it exceeds the precision of a double. SEPT1becomes a date. Gene naming conventions were formally changed because of this.- A leading
+or=becomes a formula, or a security warning.
None of that can happen here, because nothing is ever parsed. A cell arrives as a string, sits in an array as that string, and is written out as that string. The only thing that changes is which strings are in the file and what order they are in.
Frequently Asked Questions
How do I reorder the columns?
Drag a row up or down in the list, or use the small arrow buttons on the right of each row. The output columns come out in the order the list shows them, top to bottom, counting only the ticked ones. Both methods do the same thing; the buttons exist so the control works with a keyboard and a screen reader.
Can I drop columns instead of keeping them?
Yes, switch the mode from Kept to Dropped. The ticked columns are then the ones removed. That is much faster when you want to lose two columns out of forty. In drop mode the survivors keep the file's original order, since the drag order describes the arrangement of the ticked columns and in that mode they are the ones going away.
Will my leading zeros survive?
Yes. Values are carried across as the exact text that was in the file and are never parsed as numbers. That is the reason to use this rather than opening the file in a spreadsheet to rearrange the columns, which will turn 01234 into 1234 and a long account number into scientific notation on the way through.
Does this change the number of rows?
No, ever. The summary strip says so explicitly on every run. If dropping a column leaves rows that look identical to each other, they are all still present. Collapsing them is a separate decision and a separate tool, so a column change can never silently become a row change.
Can I rename columns here too?
No, this tool only chooses and orders. Names come out exactly as they went in. For a consistent renaming style like snake_case there is a clean-headers step in the pipeline builder, and for renaming individual columns by hand the full editor lets you double-click a header.
What if I have two columns with the same name?
Duplicate headers are made unique when the file is read, so the second one becomes name_2 and both appear separately in the list. That way you can keep one and drop the other, which is impossible if the tool silently merges them. The renaming is reported above the result.
Related
Pick your columns and arrange them
One list, tick and drag, with every value carried across exactly as it was written.
Back to the column picker