CSV Column Picker

Keep selected CSV columns by name or index.

Open tool

Overview

The CSV column picker trims a wide CSV down to just the columns you care about, either by header name or by zero-based index. Paste a sheet, list the columns to keep, and get back a new CSV with the same row order but only the chosen fields — perfect for stripping personally identifiable information before sharing a dataset or cutting a 60-column export down to the three columns a downstream tool actually reads.

Data analysts, marketers cleaning CRM exports, and engineers preparing fixtures for tests reach for this when the source file is too large to comfortably open in a spreadsheet. Long-tail searches that lead here include "keep only certain columns from CSV", "extract columns from CSV by name", and "remove unused columns from CSV file".

How it works

The parser follows RFC 4180 conventions: fields are comma-delimited, optionally wrapped in double quotes, and embedded quotes are escaped by doubling them (""). The first row is treated as the header. When you request columns by name, the picker matches case-insensitively against the header row; when you request by index, it uses zero-based positions so the first column is 0.

Rows that are shorter than expected are padded with empty strings rather than rejected, which lets ragged real-world exports flow through cleanly. The output preserves the original quoting style for any field that contains a comma, newline, or quote, ensuring the result remains a valid CSV.

Examples

  • Keep only email,first_name,last_name from a 40-column marketing export.
  • Pull columns 0,3,5 from a positional CSV that lacks a header row.
  • Drop a sensitive ssn and dob pair from an otherwise shareable dataset.
  • Re-order columns by listing them in your preferred sequence rather than the source order.

FAQ

Does the output preserve the original column order?
The output follows the order you specify in your column list, not the source order. Listing name,email,id will emit those three columns in that sequence regardless of where they appeared in the input.

What happens if I ask for a column that does not exist?
The picker emits an empty column under that name rather than failing the whole file, so you can safely target optional fields without pre-checking the header row.

Are duplicate column requests honoured?
Yes. Asking for email,email produces two email columns in the output, which is sometimes useful for templating downstream tools.

Does it handle other delimiters like tab or semicolon?
The parser is comma-first. For semicolon-delimited European exports, swap delimiters in a text editor first or use a dedicated CSV dialect tool.

Are quoted multi-line fields preserved?
Yes. A field containing an embedded newline inside "…" is treated as a single value and re-quoted in the output.

Try CSV Column Picker

An unhandled error has occurred. Reload ×