csvkit.org
CSV (Comma-Separated Values) utilities, in the browser
Say hi →

Add a Column to a CSV

constant · row number · template · copy of a column · UUID · any position

Add the column a downstream system insists on. Stamp every row with a source name or an import batch, number the rows so you can restore this exact order later, generate an ID per row, or build a value from the columns you already have. Choose where it goes — first, last, or right after a specific column.

add column
Or drop a .csv file here, or
ready

How to add a column

  1. Paste the CSV or drop a file.
  2. Name the column and pick what fills it.
  3. Fill in value where the mode needs it: the constant itself, a template like {city}-{plan}, or the name of the column to copy.
  4. Choose the position — the dropdown lists (first), every existing column, and (last). Then copy or download.

The fill modes

If the name is already taken

Duplicate header names break loaders and silently collapse into one column in most parsers, so a clashing name gets a numeric suffix instead: status becomes status_2, and the status line tells you it happened. To replace an existing column rather than add one, rename it away first with Header row, or drop it with Keep / rename / reorder.

FAQ

Can I add a computed column, like price × quantity?

Not with a template — it substitutes values, it doesn't do arithmetic. Use SQL on a CSV: SELECT *, price * qty AS line_total FROM csv.

Can I add several columns at once?

One per pass — add one, then run again on the result. Each pass is independent, so you can mix modes.

Why do the UUIDs change every time I edit something?

Because they're generated fresh on every run. Download the file when you're happy with it; don't rely on regenerating the same IDs.

Is anything uploaded?

No. It runs in your browser.

Privacy

100% client-side. No upload. See the privacy policy.