# replace

## Overview

The `replace` statement is used to search for, remove, and optionally replace with new values, substrings of the values in a column.

## Syntax

**`replace`***`substring`***`in`***`colName`***`[with`***`replacement]`*

## Details

The `replace` statement will remove or replace all occurrences of *substring* in the values of a column. The parameters are as follows:

| Parameter     | Notes                                                 |
| ------------- | ----------------------------------------------------- |
| *substring*   | A string to search the values in *colName* for        |
| *colName*     | The column to search for the *substring*              |
| *replacement* | The string to replace occurrences of *substring* with |

The *colName* argument may or may not be [fully qualified](/3.5.4/advanced/digging-deeper/dataset-lifecycle.md), but must reference an existing column.

If the optional *replacement* string is provided then any occurrences of *substring* will be substituted with the specified value.

If the *replacement* string is not provided then all occurrences of *substring* will be removed from the values in *colName*.

{% hint style="info" %}
The `replace` statement is useful for reducing verbosity in extracted data, resulting in smaller RDFs without losing required information
{% endhint %}

## Example

Given the following sample data:

```
PayerAccountName,TaxationAddress,ProductCode,ProductName,ItemDescription
John Doe,"123 Big St, Largetown, RH15 0HZ, United Kingdom",AWSDataTransfer,AWS Data Transfer,$0.00 per GB - EU (Germany) data transfer from EU (Ireland)
John Doe,"123 Big St, Largetown, RH15 0HZ, United Kingdom",AmazonS3,Amazon Simple Storage Service,$0.0245 per GB - first 50 TB / month of storage used
John Doe,"123 Big St, Largetown, RH15 0HZ, United Kingdom",AWSDataTransfer,AWS Data Transfer,$0.00 per GB - EU (Germany) data transfer from US West (Northern California)
John Doe,"123 Big St, Largetown, RH15 0HZ, United Kingdom",AWSDataTransfer,AWS Data Transfer,$0.090 per GB - first 10 TB / month data transfer out beyond the global free tier
John Doe,"123 Big St, Largetown, RH15 0HZ, United Kingdom",AWSDataTransfer,AWS Data Transfer,$0.00 per GB - EU (Germany) data transfer from US East (Northern Virginia)
```

The following script ...

```
import "system\extracted\example.csv" source test alias data
replace "John Doe" in PayerAccountName with "Finance Dept"
replace "RH15 0HZ, " in TaxationAddress
replace "United Kingdom" in TaxationAddress with UK
replace "AWS" in ProductCode

where ([ProductCode] == "AmazonS3") {
    replace "Amazon" in ProductCode
}

replace "Amazon " in ProductName
replace "AWS " in ProductName
replace "transfer from" in ItemDescription with -
```

... will produce the following output data.

```
"PayerAccountName","TaxationAddress","ProductCode","ProductName","ItemDescription"
"Finance Dept","123 Big St, Largetown, UK","DataTransfer","Data Transfer","$0.00 per GB - EU (Germany) data - EU (Ireland)"
"Finance Dept","123 Big St, Largetown, UK","S3","Simple Storage Service","$0.0245 per GB - first 50 TB / month of storage used"
"Finance Dept","123 Big St, Largetown, UK","DataTransfer","Data Transfer","$0.00 per GB - EU (Germany) data - US West (Northern California)"
"Finance Dept","123 Big St, Largetown, UK","DataTransfer","Data Transfer","$0.090 per GB - first 10 TB / month data transfer out beyond the global free tier"
"Finance Dept","123 Big St, Largetown, UK","DataTransfer","Data Transfer","$0.00 per GB - EU (Germany) data - US East (Northern Virginia)"
```


---

# 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.5.4/data-pipelines/transform/language/replace.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.
