Normalize Columns in JSON Files Online
Normalize numeric columns in JSON files using min-max scaling (0–1) or z-score standardisation (mean=0, std=1). Adds new columns alongside the originals — no upload required.
How to normalize Columns in JSON files
- Drop your file onto the upload area. It is loaded into the in-browser engine and the first 200 rows are shown.
- Choose a method: Min-Max (0–1), the default, or Z-Score (μ=0, σ=1).
- Tick the numeric columns to scale. Every numeric column is ticked to start with, and the table shows the output name for each one (_normalized or _zscore).
- Click Normalize. Each new column is placed directly after the column it was computed from, and the originals are kept.
- Download the result 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 coach compares five players on a reaction-time test in milliseconds and a vertical jump in centimetres. The units are different, so the raw numbers cannot be compared or combined directly.
Input (JSON)
[
{
"player": "Aoife",
"reaction_ms": 180,
"jump_cm": 40
},
{
"player": "Bram",
"reaction_ms": 220,
"jump_cm": 52
},
{
"player": "Chidi",
"reaction_ms": 200,
"jump_cm": 46
},
{
"player": "Dana",
"reaction_ms": 160,
"jump_cm": 60
},
{
"player": "Eli",
"reaction_ms": 260,
"jump_cm": 35
}
]Settings
- Method: Min-Max (0–1)
- Columns: reaction_ms and jump_cm (both ticked)
Result
| player | reaction_ms | reaction_ms_normalized | jump_cm | jump_cm_normalized |
|---|---|---|---|---|
| Aoife | 180 | 0.2 | 40 | 0.2 |
| Bram | 220 | 0.6 | 52 | 0.68 |
| Chidi | 200 | 0.4 | 46 | 0.44 |
| Dana | 160 | 0 | 60 | 1 |
| Eli | 260 | 1 | 35 | 0 |
Reaction times run from 160 to 260 ms, a range of 100, so Aoife's 180 becomes (180 − 160) / 100 = 0.2. Jumps run from 35 to 60 cm, so Bram's 52 becomes 17 / 25 = 0.68. The fastest reaction scores 0 because min-max does not know that lower is better here. Use Calculate Column with 1 − reaction_ms_normalized to flip it.
Working with JSON files
A key is offered for scaling when it holds numbers in every object that has it. Whole numbers and decimals can be mixed. A key that sometimes holds a quoted number such as "42" is loaded as a JSON-typed column and will not be listed. Neither will values nested inside an object, such as metrics.score. Flatten the file first to bring nested numbers up to the top level. Booleans are not treated as numbers, so a key holding true and false is not offered.
Objects that lack a key are treated as null for that column. They are ignored when the statistics are computed, and the scaled key is null in the output. In the downloaded JSON, each new key sits right after its source key inside every object. That keeps score and score_normalized together when you read a record. Values are written as JSON numbers, so a minimum becomes 0 and a maximum becomes 1.
Frequently Asked Questions
Can I normalize a nested JSON field such as stats.points?
Not directly, because only top-level keys are listed. Run Flatten first so stats.points becomes its own column, then normalize it.
What happens to JSON objects that don't have the key I normalize?
They get null for the new key. Missing values are not counted as zero and do not affect the min, max, mean or standard deviation.
Does z-score use the sample or population standard deviation?
The sample standard deviation, which divides by n − 1. Results therefore differ slightly from tools that use the population figure, such as scikit-learn's StandardScaler. The gap shrinks as the row count grows.
What happens if every value in a column is the same?
The range (for min-max) or standard deviation (for z-score) is zero. The tool returns NULL for that column instead of dividing by zero. Null input values also stay null.
Can I scale values within each group, such as per region?
No. Statistics are computed over the whole file. For per-group scaling, filter the file to one group at a time, or use the SQL Query tool with PARTITION BY in the window functions.
Related Tools
Add Calculated Column to JSON Files Online
Add a new column to JSON files computed from an arithmetic expression over existing columns. No formulas, no code — just point and click.
Compute Correlation Matrix for JSON Files Online
Compute a Pearson correlation matrix for numeric columns in JSON files directly in your browser. Instantly spot which variables move together — colour-coded heatmap, no upload required.
Round Numbers in JSON Files Online
Round numeric columns in JSON files to any number of decimal places directly in your browser. Set precision per column with a simple slider — no upload required.
Normalize Columns in CSV Files Online
Normalize numeric columns in CSV files using min-max scaling (0–1) or z-score standardisation (mean=0, std=1). Adds new columns alongside the originals — no upload required.
Normalize Columns in Excel Files Online
Normalize numeric columns in Excel files using min-max scaling (0–1) or z-score standardisation (mean=0, std=1). Adds new columns alongside the originals — no upload required.
Normalize Columns in Parquet Files Online
Normalize numeric columns in Parquet files using min-max scaling (0–1) or z-score standardisation (mean=0, std=1). Adds new columns alongside the originals — no upload required.
JSON Viewer Online
View and inspect JSON files directly in your browser. Browse rows, check column names and data types — no upload required, your data stays on your device.
Convert JSON to Parquet Online
Convert JSON files to Parquet format directly in your browser. No upload required — your data never leaves your device.