# has_no_nulls { #pelage.checks.has_no_nulls }

`checks.has_no_nulls(data, columns=None)`

Check if a DataFrame has any null (missing) values.

## Parameters

<code><span class="parameter-name">data</span><span class="parameter-annotation-sep">:</span> <span class="parameter-annotation">PolarsLazyOrDataFrame</span></code>

:   The input DataFrame to check for null values.

<code><span class="parameter-name">columns</span><span class="parameter-annotation-sep">:</span> <span class="parameter-annotation">Optional\[PolarsColumnType\]</span> <span class="parameter-default-sep">=</span> <span class="parameter-default">None</span></code>

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

## Returns

| Type                  | Description                                                      |
|-----------------------|------------------------------------------------------------------|
| PolarsLazyOrDataFrame | The original polars DataFrame or LazyFrame when the check passes |

## Examples

```python
>>> import polars as pl
>>> from pelage import checks
>>> df = pl.DataFrame({
...     "A": [1, 2],
...     "B": [None, 5]
... })
>>> df
shape: (2, 2)
┌─────┬──────┐
│ A   ┆ B    │
│ --- ┆ ---  │
│ i64 ┆ i64  │
╞═════╪══════╡
│ 1   ┆ null │
│ 2   ┆ 5    │
└─────┴──────┘
>>> checks.has_no_nulls(df)
Traceback (most recent call last):
    ...
pelage.checks.PolarsAssertError: Details
shape: (1, 2)
┌────────┬────────────┐
│ column ┆ null_count │
│ ---    ┆ ---        │
│ str    ┆ u32        │
╞════════╪════════════╡
│ B      ┆ 1          │
└────────┴────────────┘
Error with the DataFrame passed to the check function:
--> There were unexpected nulls in the columns above
```