# ---
# jupyter:
#   jupytext:
#     text_representation:
#       extension: .py
#       format_name: light
#       format_version: '1.5'
#       jupytext_version: 1.14.4
#   kernelspec:
#     display_name: Python 3
#     language: python
#     name: python3
# ---

# + active=""
# .. _vat_userguide:
#
# Onderwijsnummer Strings
# ============

# + active=""
# Introduction
# ------------
#
# The function :func:`clean_nl_onderwijsnummer() <dataprep.clean.clean_nl_onderwijsnummer.clean_nl_onderwijsnummer>` cleans a column containing Onderwijsnummer (the Dutch student identification number) strings, and standardizes them in a given format. The function :func:`validate_nl_onderwijsnummer() <dataprep.clean.clean_nl_onderwijsnummer.validate_nl_onderwijsnummer>` validates either a single Onderwijsnummer strings, a column of Onderwijsnummer strings or a DataFrame of Onderwijsnummer strings, returning `True` if the value is valid, and `False` otherwise.
# -

# Onderwijsnummer strings can be converted to the following formats via the `output_format` parameter:
#
# * `compact`: only number strings without any seperators or whitespace, like "101222331"
# * `standard`: Onderwijsnummer strings with proper whitespace in the proper places. Note that in the case of Onderwijsnummer, the compact format is the same as the standard one.
#
# Invalid parsing is handled with the `errors` parameter:
#
# * `coerce` (default): invalid parsing will be set to NaN
# * `ignore`: invalid parsing will return the input
# * `raise`: invalid parsing will raise an exception
#
# The following sections demonstrate the functionality of `clean_nl_onderwijsnummer()` and `validate_nl_onderwijsnummer()`. 

# ### An example dataset containing Onderwijsnummer strings

import pandas as pd
import numpy as np
df = pd.DataFrame(
    {
        "vat": [
            '1012.22.331',
            '2112.22.337',
            'BE 428759497',
            'BE431150351',
            "002 724 334",
            "hello",
            np.nan,
            "NULL",
        ], 
        "address": [
            "123 Pine Ave.",
            "main st",
            "1234 west main heights 57033",
            "apt 1 789 s maple rd manhattan",
            "robie house, 789 north main street",
            "1111 S Figueroa St, Los Angeles, CA 90015",
            "(staples center) 1111 S Figueroa St, Los Angeles",
            "hello",
        ]
    }
)
df

# ## 1. Default `clean_nl_onderwijsnummer`
#
# By default, `clean_nl_onderwijsnummer` will clean vat strings and output them in the standard format with proper separators.

from dataprep.clean import clean_nl_onderwijsnummer
clean_nl_onderwijsnummer(df, column = "vat")

# ## 2. Output formats

# This section demonstrates the output parameter.

# ### `standard` (default)

clean_nl_onderwijsnummer(df, column = "vat", output_format="standard")

# ### `compact`

clean_nl_onderwijsnummer(df, column = "vat", output_format="compact")

# ## 3. `inplace` parameter
#
# This deletes the given column from the returned DataFrame. 
# A new column containing cleaned Onderwijsnummer strings is added with a title in the format `"{original title}_clean"`.

clean_nl_onderwijsnummer(df, column="vat", inplace=True)

# ## 4. `errors` parameter

# ### `coerce` (default)

clean_nl_onderwijsnummer(df, "vat", errors="coerce")

# ### `ignore`

clean_nl_onderwijsnummer(df, "vat", errors="ignore")

# ## 4. `validate_nl_onderwijsnummer()`

# `validate_nl_onderwijsnummer()` returns `True` when the input is a valid Onderwijsnummer. Otherwise it returns `False`.
#
# The input of `validate_nl_onderwijsnummer()` can be a string, a Pandas DataSeries, a Dask DataSeries, a Pandas DataFrame and a dask DataFrame.
#
# When the input is a string, a Pandas DataSeries or a Dask DataSeries, user doesn't need to specify a column name to be validated. 
#
# When the input is a Pandas DataFrame or a dask DataFrame, user can both specify or not specify a column name to be validated. If user specify the column name, `validate_nl_onderwijsnummer()` only returns the validation result for the specified column. If user doesn't specify the column name, `validate_nl_onderwijsnummer()` returns the validation result for the whole DataFrame.

from dataprep.clean import validate_nl_onderwijsnummer
print(validate_nl_onderwijsnummer("1012.22.331"))
print(validate_nl_onderwijsnummer("2112.22.337"))
print(validate_nl_onderwijsnummer('BE 428759497'))
print(validate_nl_onderwijsnummer('BE431150351'))
print(validate_nl_onderwijsnummer("004085616"))
print(validate_nl_onderwijsnummer("hello"))
print(validate_nl_onderwijsnummer(np.nan))
print(validate_nl_onderwijsnummer("NULL"))

# ### Series

validate_nl_onderwijsnummer(df["vat"])

# ### DataFrame + Specify Column

validate_nl_onderwijsnummer(df, column="vat")

# ### Only DataFrame

validate_nl_onderwijsnummer(df)



StarcoderdataJupyterScriptsDedupFiltered