# unique { #pelage.unique }

```python
unique(data, columns=None, group_by=None)
```

Check if there are no duplicated values in each one of the selected columns.

This is a column oriented check, where each columns are search independently for
duplicated values. For a row oriented check see `unique_combination_of_columns`

## Parameters {.doc-section .doc-section-parameters}

<code><span class="parameter-name">data</span><span class="parameter-annotation-sep">:</span> <span class="parameter-annotation">[PolarsLazyOrDataFrame](`pelage.types.PolarsLazyOrDataFrame`)</span></code>

:   The input DataFrame to check for unique values.

<code><span class="parameter-name">columns</span><span class="parameter-annotation-sep">:</span> <span class="parameter-annotation">[Optional](`typing.Optional`)\[[PolarsColumnType](`pelage.types.PolarsColumnType`)\]</span> <span class="parameter-default-sep">=</span> <span class="parameter-default">None</span></code>

:   Columns to consider for uniqueness check. By default, all columns are checked.

## Returns {.doc-section .doc-section-returns}

| Name   | Type                                                          | Description                                                      |
|--------|---------------------------------------------------------------|------------------------------------------------------------------|
|        | [PolarsLazyOrDataFrame](`pelage.types.PolarsLazyOrDataFrame`) | The original polars DataFrame or LazyFrame when the check passes |

## Examples {.doc-section .doc-section-examples}

```python
>>> import polars as pl
>>> import pelage as plg
>>> df = pl.DataFrame({"a": [1, 2]})
>>> df.pipe(plg.unique, "a")  # Can also use ["a", ...], pl.col("a)
shape: (2, 1)
┌─────┐
│ a   │
│ --- │
│ i64 │
╞═════╡
│ 1   │
│ 2   │
└─────┘
```

```python
>>> df = pl.DataFrame({"a": [1, 1, 2]})
>>> df.pipe(plg.unique, "a")
Traceback (most recent call last):
...
pelage.types.PolarsAssertError: Details
shape: (2, 1)
┌─────┐
│ a   │
│ --- │
│ i64 │
╞═════╡
│ 1   │
│ 1   │
└─────┘
Error with the DataFrame passed to the check function:
--> Somes values are duplicated within the specified columns
```

```python
>>> df = pl.DataFrame(
...     [
...         [1, 1, 1],
...         [1, 1, 2],
...     ],
...     schema=["col1", "col2", "group"],
...     orient="row",
... )
>>> df.pipe(plg.unique, ["col1", "col2"], group_by="group")
shape: (2, 3)
┌──────┬──────┬───────┐
│ col1 ┆ col2 ┆ group │
│ ---  ┆ ---  ┆ ---   │
│ i64  ┆ i64  ┆ i64   │
╞══════╪══════╪═══════╡
│ 1    ┆ 1    ┆ 1     │
│ 1    ┆ 1    ┆ 2     │
└──────┴──────┴───────┘
```

```python
>>> df = pl.DataFrame(
...     [
...         [1, 1, 1],
...         [1, 1, 1],
...         [1, 1, 2],
...     ],
...     schema=["col1", "col2", "group"],
...     orient="row",
... )
>>> df.pipe(plg.unique, ["col1", "col2"], group_by="group")
Traceback (most recent call last):
...
pelage.types.PolarsAssertError: Details
shape: (2, 3)
┌──────┬──────┬───────┐
│ col1 ┆ col2 ┆ group │
│ ---  ┆ ---  ┆ ---   │
│ i64  ┆ i64  ┆ i64   │
╞══════╪══════╪═══════╡
│ 1    ┆ 1    ┆ 1     │
│ 1    ┆ 1    ┆ 1     │
└──────┴──────┴───────┘
Error with the DataFrame passed to the check function:
--> Somes values are duplicated within the specified columns
```
