Skip to main content
L
Loopaloo
Buy Us a Coffee
All ToolsImage ProcessingAudio ProcessingVideo ProcessingDocument & TextPDF ToolsCSV & Data AnalysisConverters & EncodersWeb ToolsMath & ScienceGames
Guides & BlogAboutContact
Buy Us a Coffee
L
Loopaloo

Free online tools for developers, designers, and content creators. Your files are processed in your browser and are never uploaded - no accounts required. A few network utilities (like What's My IP and Currency Converter) call public APIs to do their job and say so on their pages.

support@loopaloo.com

Tool Categories

  • Image Tools
  • Audio Tools
  • Video Tools
  • Document & Text
  • PDF Tools
  • CSV & Data
  • Converters
  • Web Tools
  • Math & Science
  • Games

Company

  • About Us
  • Contact
  • Blog
  • FAQ

Legal

  • Privacy Policy
  • Terms of Service
  • Disclaimer

Support

Buy Us a Coffee

© 2026 Loopaloo. All rights reserved. Built with privacy in mind.

Privacy|Terms|Disclaimer
  1. Home
  2. CSV & Data Analysis
  3. CSV Statistics Generator
Add to favorites

CSV Statistics Generator

Per-column statistics with the definitions named: which of the nine quantile rules, sample and population deviation side by side, and why each cell was counted

Rows never leave your deviceMore csv & data analysisJump to full guide

Related reading

  • Descriptive Statistics, From Mean to Quartiles11 min read
  • CSV Data Processing: Tips for Handling Large Datasets10 min read

Initializing in your browser…

You might also like

CSV Viewer & Editor

View, sort and edit a CSV, with an undo stack that goes back exactly one step and a parse report that tells a broken quote from a ragged row

CSV to JSON Converter

Convert both ways, converting a type only when it reads back the same, and naming every value that cannot

CSV Formatter & Validator

Format and validate against RFC 4180 by section, with output verified by reading it back

A sample run

You want a statistical profile of a price column, and you want to be able to reproduce the numbers in R or Excel afterwards.

Column

Price: $1,299.99  $29.99  $79.99  $299.99  $149.99  $89.99
What CSV Statistics Generator produces

Summary

n 6   min 29.99   max 1299.99   sum 1949.94   mean 324.99
median 119.99   Q1 82.49   Q3 262.49   IQR 180   (quantile type 7)
std dev  sample 486.65 (divides by n-1)   population 444.25 (divides by n)
outliers 1, outside -187.51 to 532.49 (Tukey, 1.5 x IQR)

All six cells are read despite the currency symbol and the grouped thousands. Both standard deviations are given because the two answer different questions and differ by 9.5 percent at this sample size, and the quartiles name the definition used: switch it to type 6 and Q1 becomes 67.49, which is what Excel PERCENTILE.EXC would tell you. The one outlier is the 1299.99 laptop.

Statistics That Say Which Definition They Used

Upload a CSV and get a summary of every column: count, sum, min, max, mean, median, quartiles, both standard deviations, skewness, kurtosis and outliers. The difference from most such tools is that the numbers are labelled. There are nine published definitions of a quartile and two of a standard deviation, and this one tells you which it used and lets you change it.

How to use

  1. 1Upload a CSV file, or load the sample data
  2. 2Pick the quantile definition and the number format, or leave both on their defaults
  3. 3Select which columns to analyze, then click Calculate Statistics
  4. 4Read the per-column cards: the cell accounting first, then the statistics, then the distribution
  5. 5Change the quantile definition to see the quartiles update instantly, then download the report

Key features

  • Sample and population standard deviation and variance shown together, each labelled with its divisor
  • All nine Hyndman and Fan quantile definitions, selectable, with the packages that use each one named
  • Count, sum, min, max, range, mean, median, Q1, Q3, IQR, skewness and excess kurtosis
  • Outliers counted against Tukey fences at 1.5 times the IQR, with the fences shown
  • Every cell placed in exactly one of numeric, text, empty or whitespace, shown summing to the row count
  • Cells not read as numbers listed by reason with an example, so a skipped value is never silent
  • Grouped thousands, currency symbols, ISO 4217 codes, percent signs and accounting parentheses all read
  • Separator convention inferred per column, with ambiguous columns flagged and a witness cell named
  • Neumaier compensated summation, with the drift of plain addition reported when it is non-zero
  • Equal-width histogram with the bin convention stated, plus top value frequencies for every column
  • Plain-text report that records every definition used, so the numbers can be reproduced elsewhere

How it works

Two numbers in an ordinary summary table have no single definition, and a tool that prints one without saying which is not reporting a measurement.

The standard deviation is the first. Dividing the sum of squared deviations by n gives the population deviation, which describes the numbers in front of you; dividing by n-1 gives the sample deviation, Bessel's correction, which estimates the population those numbers came from. Python names them pstdev and stdev, Excel names them STDEV.P and STDEV.S, and R's sd is the sample one. The gap matters at the sizes people paste into a browser: over the values 1 to n the population form is 29.3 percent lower at n=2, 13.4 percent at n=4 and 5.1 percent at n=10. This tool shows both, side by side, each labelled with its divisor. At n=1 the sample deviation is undefined because n-1 is zero, and it says so rather than printing 0.

The quartiles are the second. Hyndman and Fan catalogued nine definitions in 1996 and both R and NumPy implement all nine. Over the values 1, 2, 3, 4 they put Q1 anywhere between 1 and 1.75. You pick the definition from a menu, the page names it, and the downloaded report records it, so the number can be reproduced in whatever tool you take it to. Type 7 is the default because it is also the default of R, NumPy, Excel PERCENTILE.INC and Google Sheets.

Which cells count as numbers is stated too. A cell holding only a space is not a measurement of zero, Infinity is a spreadsheet error rather than a value to average, and 0x1F is a string in a CSV file even though JavaScript reads it as 31. Every cell is placed in exactly one of four categories, numeric, text, empty or whitespace, and those four are shown adding up to the row count. Cells that were not read as numbers are listed by reason with an example, so a column that unexpectedly has no statistics tells you why.

Formatted numbers are read rather than discarded: grouped thousands, a leading or trailing currency symbol, a trailing ISO 4217 code, a percent sign (divided by 100) and accounting parentheses for a negative. Because 1.234 is one thousand in Germany and one and a bit in the United States, the separator convention is inferred per column from which reading is consistent across the whole column, and when both readings work the tool says the column is ambiguous and names the cell that proves it rather than picking in silence.

The sum uses Neumaier compensated summation, so a long column does not drift: over 1e16 followed by a hundred 1s, plain left-to-right addition loses all one hundred, and where that drift is non-zero the page reports how large it was.

Where this fits a data pipeline

  • Exploratory data analysis

    Get a statistical overview of a new dataset, including how many cells in each column are actually numbers, before committing to an analysis workflow.

  • Data quality checks

    Spot columns where a handful of cells are text, or empty, or hold only a space, and see exactly which values were skipped and why.

  • Reproducing a number from another tool

    When a quartile here disagrees with one from R, Excel or pandas, switch the quantile definition until they match and you have found which convention the other tool used.

  • Outlier detection

    Count the values outside Tukey fences at 1.5 times the interquartile range, with the fence positions shown so the threshold is not a black box.

Frequently asked questions

Is the standard deviation the sample one or the population one?

Both are shown. The sample form divides by n-1 and estimates the population the data came from; the population form divides by n and describes only the numbers present. Each tile names its divisor. At n=1 the sample form is reported as undefined rather than 0, because n-1 is zero.

Why do the quartiles here differ from the ones my other tool gives?

Because there are nine published definitions of a sample quantile and they disagree on small samples. Hyndman and Fan catalogued them in 1996 and R and NumPy implement all nine. Pick the matching definition from the menu: type 7 is R, NumPy, Excel PERCENTILE.INC and Google Sheets; type 6 is Excel PERCENTILE.EXC, Minitab and SPSS; type 2 is the SAS default.

How are empty and missing values treated?

Every cell falls into exactly one of four categories and the page shows the four adding up to the row count: numeric, text, empty, and whitespace only. A cell holding a space or a tab is counted as whitespace, not as a measurement of zero, which is what Number() in JavaScript would make it.

Does it handle currency, percentages and formatted numbers?

Yes. Grouped thousands, a leading or trailing currency symbol, a trailing three-letter currency code, a trailing percent sign (which divides by 100) and accounting parentheses for negatives are all read. The currency symbol is recorded and never converted; this tool has no exchange rates.

What happens to a column that mixes numbers and text?

It is labelled Mixed with the percentage of non-empty cells that are numbers, statistics are computed over the numeric cells only, and the text cells are listed by reason with an example so you can see what they were.

Why is a cell reading 0x1F not counted as 31?

Because it is a string in a CSV file. JavaScript's Number() reads 0x1F as 31, 0b101 as 5 and 0o17 as 15, and Infinity as an actual infinity, all of which silently corrupt a mean. Those forms are refused by name and reported. A cell reading 007 is still read as 7, and flagged as carrying a leading zero.

Can I analyze only specific columns?

Yes. Every column is selected by default and you can toggle any of them off. Changing the quantile definition or the number format afterwards recomputes instantly without reloading the file.

Related tools and how they differ

  • Statistics Calculator: Analyzes one hand-typed list of numbers, adding Z-score, percentile, IQR outliers, and skewness; use it for quick single-dataset stats without a file.

Further reading

  • Descriptive Statistics, From Mean to Quartiles11 min read
  • CSV Data Processing: Tips for Handling Large Datasets10 min read

Private by design

Rows and columns are parsed and transformed in memory in your browser. No record ever reaches a server.