Deduplicate CSV Files Online
Remove duplicate rows from CSV files instantly in your browser. No upload, no server — 100% private.
How to deduplicate CSV files
- Drop your file onto the upload area. It is loaded into the in-browser engine and the first 200 rows are shown.
- Choose the columns that define a duplicate. All columns are ticked by default, which removes only rows that are identical in every field.
- Untick columns to match on a subset. For example, keep only customer_id ticked to keep one row per customer.
- Click Deduplicate. The tool reports how many rows were removed and previews the result.
- Download the cleaned file in the same format you uploaded.
Your file is processed locally in your browser and is never uploaded. The free limit is 50 MB per file; larger files work if your device has the memory for them.
Worked example
A CRM export lists the same contact more than once because the sync job ran twice, and one person also signed up again later with a different date.
Input (CSV)
email,name,plan,signup_date
ana@example.com,Ana Ruiz,pro,2026-01-04
ben@example.com,Ben Cho,free,2026-01-09
ana@example.com,Ana Ruiz,pro,2026-01-04
cara@example.com,Cara Doyle,free,2026-02-11
ben@example.com,Ben Cho,pro,2026-03-20Settings
- Columns to match on: email only (name, plan and signup_date unticked)
Result
| name | plan | signup_date | |
|---|---|---|---|
| ana@example.com | Ana Ruiz | pro | 2026-01-04 |
| ben@example.com | Ben Cho | free | 2026-01-09 |
| cara@example.com | Cara Doyle | free | 2026-02-11 |
Matching on email alone collapses five rows to three: one row per address. With all columns ticked, only the exact repeat of Ana's row would be removed. Ben's two rows would both stay because his plan and signup date differ. Which row survives for each email is not guaranteed, so sort first if you need the earliest or latest one.
Working with CSV files
CSV has no types, so every value is inferred on load. Whitespace and letter case count when comparing rows. "ana@example.com" and "ana@example.com " (trailing space) are different values, and so are "ACME" and "Acme". If you expect more duplicates than the tool finds, run Trim Whitespace or Convert Case on the key columns first.
Empty CSV fields load as NULL, and two NULLs in the same column are treated as equal when matching rows. Two rows that are both missing a phone number but otherwise identical therefore count as duplicates. The output is written back as CSV with the original header and comma delimiter.
Type inference also decides what counts as equal. In a column detected as numeric, 1.50 and 1.5 load as the same number, so rows that differ only in trailing zeros are duplicates. If a single value such as "n/a" makes the column text, those two stay different, because text is compared character by character. The download is rewritten from the loaded table, so numbers appear in their parsed form (1.5, not 1.50). If the file came from a system that needs the original text, match on an ID column and check the preview first.
Frequently Asked Questions
Why are some CSV rows that look identical not removed?
Usually there is hidden whitespace, a different line ending, or a case difference in one field. Trim the text columns first, or match only on the columns that matter, such as an ID or email column.
Does deduplicating a CSV keep the header row?
Yes. The header is read as column names and written back unchanged at the top of the downloaded CSV.
Which row is kept when duplicates are found?
One row per unique combination of the selected columns is kept. When you match on a subset of columns, which of the matching rows survives is not guaranteed. Sort the file first if you need the earliest or latest one, or use Top N per Group with N = 1.
What is the difference between Remove Duplicates and Find Duplicates?
Remove Duplicates writes a cleaned file with the extra rows dropped. Find Duplicates lists which rows are duplicated and how many times each one appears, so you can review them before deleting anything.
Can it catch near-duplicates such as typos in names?
No. Matching is exact. Use Fuzzy Deduplicate for names or addresses that differ slightly, such as "Acme Ltd" and "ACME Limited".
Related Tools
Find Fuzzy Duplicates in CSV Files Online
Find near-duplicate rows in CSV files using Levenshtein edit distance or Jaro-Winkler similarity — all in your browser. Set your own threshold and download the matched pairs as CSV — no upload required.
Count Values in CSV Files Online
Group and count rows by any column in CSV files directly in your browser. Sort by frequency or value to find the most common entries — no upload required.
Sort CSV Files Online
Sort CSV files by any column, ascending or descending, directly in your browser.
Deduplicate Excel Files Online
Remove duplicate rows from Excel files instantly in your browser. No upload, no server — 100% private.
Deduplicate Parquet Files Online
Remove duplicate rows from Parquet files instantly in your browser. No upload, no server — 100% private.
Deduplicate JSON Files Online
Remove duplicate rows from JSON files instantly in your browser. No upload, no server — 100% private.
CSV Viewer Online
View and inspect CSV files directly in your browser. Browse rows, check column names and data types — no upload required, your data stays on your device.
Convert CSV to Parquet Online
Convert CSV files to Parquet format directly in your browser. No upload required — your data never leaves your device.