<jupyter_start><jupyter_text>Mauritian National ID Numbers  Introduction The function `clean_mu_nid()` cleans a column containing Mauritian national ID number (NID) strings, and standardizes them in a given format. The function `validate_mu_nid()` validates either a single NID strings, a column of NID strings or a DataFrame of NID strings, returning `True` if the value is valid, and `False` otherwise. NID strings can be converted to the following formats via the `output_format` parameter:* `compact`: only number strings without any seperators or whitespace, like "J2906201304089"* `standard`: NID strings with proper whitespace in the proper places. Note that in the case of NID, the compact format is the same as the standard one.* `birthdate`: split the date parts from the number and return the birth date, like "2020-06-29".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 exceptionThe following sections demonstrate the functionality of `clean_mu_nid()` and `validate_mu_nid()`.   An example dataset containing NID strings<jupyter_code>import pandas as pd
import numpy as np
df = pd.DataFrame(
    {
        "nid": [
            'J2906201304089',
            'J2906201304088',
            '7542011030',
            '7552A10004',
            '8019010008', 
            "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<jupyter_output><empty_output><jupyter_text>1. Default `clean_mu_nid`By default, `clean_mu_nid` will clean nid strings and output them in the standard format with proper separators.<jupyter_code>from dataprep.clean import clean_mu_nid
clean_mu_nid(df, column = "nid")<jupyter_output><empty_output><jupyter_text>2. Output formats This section demonstrates the output parameter.  `standard` (default)<jupyter_code>clean_mu_nid(df, column = "nid", output_format="standard")<jupyter_output><empty_output><jupyter_text>`compact`<jupyter_code>clean_mu_nid(df, column = "nid", output_format="compact")<jupyter_output><empty_output><jupyter_text>`birthdate`<jupyter_code>clean_mu_nid(df, column = "nid", output_format="birthdate")<jupyter_output><empty_output><jupyter_text>3. `inplace` parameterThis deletes the given column from the returned DataFrame. A new column containing cleaned NID strings is added with a title in the format `"{original title}_clean"`.<jupyter_code>clean_mu_nid(df, column="nid", inplace=True)<jupyter_output><empty_output><jupyter_text>4. `errors` parameter  `coerce` (default)<jupyter_code>clean_mu_nid(df, "nid", errors="coerce")<jupyter_output><empty_output><jupyter_text>`ignore`<jupyter_code>clean_mu_nid(df, "nid", errors="ignore")<jupyter_output><empty_output><jupyter_text>4. `validate_mu_nid()` `validate_mu_nid()` returns `True` when the input is a valid NID. Otherwise it returns `False`.The input of `validate_mu_nid()` 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_mu_nid()` only returns the validation result for the specified column. If user doesn't specify the column name, `validate_mu_nid()` returns the validation result for the whole DataFrame.<jupyter_code>from dataprep.clean import validate_mu_nid
print(validate_mu_nid('J2906201304089'))
print(validate_mu_nid('J2906201304088'))
print(validate_mu_nid('7542011030'))
print(validate_mu_nid('7552A10004'))
print(validate_mu_nid('8019010008'))
print(validate_mu_nid("hello"))
print(validate_mu_nid(np.nan))
print(validate_mu_nid("NULL"))<jupyter_output><empty_output><jupyter_text>Series<jupyter_code>validate_mu_nid(df["nid"])<jupyter_output><empty_output><jupyter_text>DataFrame + Specify Column<jupyter_code>validate_mu_nid(df, column="nid")<jupyter_output><empty_output><jupyter_text>Only DataFrame<jupyter_code>validate_mu_nid(df)<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.09776902887139108, 'fraction_numerical': 0.03674540682414698, 'mean_word_length': 5.377963737796374, 'pattern_counts': {'":': 2, '<': 49, '<?xml version=': 0, '>': 49, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '12', 'dir': 'jupyter-structured-clean-dedup', 'id': '66738', 'license': 'MIT', 'n_tokens_mistral': 1588, 'n_tokens_neox': 1439, 'n_words': 435, 'path': 'docs/source/user_guide/clean/clean_mu_nid.ipynb', 'repo_name': 'jwa345/dataprep', 'size': '4572'}