Numeric Row Deduplicator

Remove duplicate rows from a numeric table, comparing each cell by its numeric value — so 1, 1.0, 1.00, +1 and 1e0 all collapse to one row, unlike a plain text deduper. Key on chosen columns, round away float noise, and keep the first or last occurrence. Runs entirely in your browser; nothing is uploaded.

Try:
De-duplicated rows

About this tool

The Numeric Row Deduplicator removes duplicate rows from a numeric table (CSV or TSV), but unlike an ordinary text deduplicator it compares each cell by its numeric value. That means 1, 1.0, 1.00, +1, 1e0 and 100e-2 are all recognised as the same number, so rows that only look different collapse into one. A plain string-based deduper would keep every one of them.

Paste your rows, optionally pick the columns to key on, and the tool keeps the first occurrence of each numeric row (in its original order) and drops the rest. Everything runs locally in your browser — nothing is uploaded.

Worked example

Input (one row per line):

1,2
1.0,2.0
1.00,2
3,4

Output (De-duplicated rows):

1,2
3,4

Rows 1–3 are the same pair of numbers written three ways, so only the first survives; the 3,4 row is unique and is kept.

What you can control

Limits & behaviour

FAQ

How is this different from a normal CSV duplicate remover?

A normal remover compares rows as raw text, so 1.0 and 1.00 are two different rows and both survive. This tool parses each cell as a number and compares the values, so every textual form of the same number collapses to a single row. That is the whole point of a numeric deduplicator.

Can I de-duplicate on just some columns?

Yes. Put the columns you want to key on in Key columns — 1-based numbers like 1,3, or header names like id,region when Header is on. Rows that match on those columns are treated as duplicates even if other columns differ, and the first (or last) matching row is kept.

What does the rounding tolerance do?

Set it to a number of decimal places and every numeric cell is rounded to that precision before comparing. This collapses near-duplicates caused by floating-point noise — for example 0.30000000000000004 and 0.3 become equal at 2 decimals. Leave it at -1 to compare the exact value with no rounding.

What happens to non-numeric cells?

Cells that do not parse as a number (labels, currency symbols, blanks, NaN) are compared as trimmed text instead. So a table mixing a region column with numeric measurements still de-duplicates correctly — the text columns match by text, the number columns match by value.

Is my data uploaded anywhere?

No. The tool is compiled to WebAssembly and runs entirely inside your browser tab. Your rows never leave your device, which makes it safe for sensitive or proprietary data.

Developer & Automation Access

Run it from the terminal

Same engine as this page, headless — via the gizza CLI:

gizza tool numeric-row-deduplicator "1,2
1.0,2.0
1.00,2
3,4"

New to the CLI? Get gizza →

Open it by URL

Pre-fill and auto-run this tool with query parameters — the names match the API/CLI:

https://gizza.ai/tools/numeric-row-deduplicator/?data=1%2C2%0A1.0%2C2.0%0A1.00%2C2%0A3%2C4&columns=1%2C%203&header=true&delimiter=%2C&precision=-1&keep=first

Machine-readable descriptor: tool.json — title + parameters JSON Schema for agents.