# normalise

## Overview

The `normalise` statement is used to update the values in a numerical column such that they are all positive, negative or inverted.

{% hint style="info" %}
In this documentation the spelling `normalise` is used but `normalize` may also be used. The functionality is identical in either case.
{% endhint %}

## Syntax

**`normalise column`***`colName`***`as positive`**

**`normalise column`***`colName`***`as negative`**

**`normalise column`***`colName`***`as invert`**

**`normalise column`***`colName`***`as standard`**

## Details

The `normalise` statement processes each value in the column called *colName* and applies the following logic based on the last argument shown above as follows:

| Argument   | Result                                                                                                                                                                                                                                                                        |
| ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `positive` | All negative numbers are replaced with their positive equivalent. Non-negative numbers are left unmodified.                                                                                                                                                                   |
| `negative` | All positive numbers are replaced with their negative equivalent. Negative numbers are left unmodified.                                                                                                                                                                       |
| `invert`   | All positive numbers are replaced with their negative equivalent, and all negative numbers are replaced with their positive equivalent                                                                                                                                        |
| `standard` | All non-blank values are assumed to be a decimal number and are replaced with that value in conventional notation. This functionality is intended to provide a means to convert numbers in scientific notation such as `2.1E-5` to conventional notation such as  `0.000021`. |

In order to be considered a number, a value in the *colName* column must start with any of the characters `+`, `-`, `.` or `0 to 9` and may contain a single `.` character which is interpreted as a decimal point.

{% hint style="info" %}
If a value in *colName* is non-numeric or blank it is left intact
{% endhint %}

{% hint style="warning" %}
When using `standard`all non-blank values are assumed to be numeric, and as such any non-numeric values will be changed to a numeric zero.
{% endhint %}

Additionally:

* Any numerical value in *colName* which starts with a `+`, `.` or decimal character is considered positive
* Any numerical value in *colName* which starts with a `-` character is considered negative
* When using `standard` the resulting conventional number will be accurate up to 14 decimal places

The `normalise` statement ignores the [option overwrite](/3.4.3/data-pipelines/transform/language/option.md) setting, as its sole purpose is to modify existing values.

## Example

```
import "system/extracted/csp_usage.csv" source test alias data

# Invert all numerical values in column 'quantity'
normalise column quantity as invert
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://olddocs.exivity.io/3.4.3/data-pipelines/transform/language/normalise.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
