<jupyter_start><jupyter_text>New Zealand Bank Account Numbers  Introduction The function `clean_nz_bankaccount()` cleans a column containing New Zealand bank account number (bankaccount) strings, and standardizes them in a given format. The function `validate_nz_bankaccount()` validates either a single bankaccount strings, a column of bankaccount strings or a DataFrame of bankaccount strings, returning `True` if the value is valid, and `False` otherwise. bankaccount strings can be converted to the following formats via the `output_format` parameter:* `compact`: only number strings without any seperators or whitespace, like "0102420100194000"* `standard`: bankaccount strings with proper whitespace in the proper places, like "01-0242-0100194-000"* `info`: return a dictionary of data about the supplied number, like {'bank': 'ANZ Bank New Zealand', 'branch': 'ANZ Retail'}. This typically returns the name of the bank and branch and a BIC if it is valid.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_nz_bankaccount()` and `validate_nz_bankaccount()`.   An example dataset containing bankaccount strings<jupyter_code>import pandas as pd
import numpy as np
df = pd.DataFrame(
    {
        "bankaccount": [
            "0102420100194000",
            "01-0242-0100195-00",
            "999 999 999",
            "004085616",
            "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<jupyter_output><empty_output><jupyter_text>1. Default `clean_nz_bankaccount`By default, `clean_nz_bankaccount` will clean bankaccount strings and output them in the standard format with proper separators.<jupyter_code>from dataprep.clean import clean_nz_bankaccount
clean_nz_bankaccount(df, column = "bankaccount")<jupyter_output><empty_output><jupyter_text>2. Output formats This section demonstrates the output parameter.  `standard` (default)<jupyter_code>clean_nz_bankaccount(df, column = "bankaccount", output_format="standard")<jupyter_output><empty_output><jupyter_text>`compact`<jupyter_code>clean_nz_bankaccount(df, column = "bankaccount", output_format="compact")<jupyter_output><empty_output><jupyter_text>`info`<jupyter_code>clean_nz_bankaccount(df, column = "bankaccount", output_format="info")<jupyter_output><empty_output><jupyter_text>3. `inplace` parameterThis deletes the given column from the returned DataFrame. A new column containing cleaned bankaccount strings is added with a title in the format `"{original title}_clean"`.<jupyter_code>clean_nz_bankaccount(df, column="bankaccount", inplace=True)<jupyter_output><empty_output><jupyter_text>4. `errors` parameter  `coerce` (default)<jupyter_code>clean_nz_bankaccount(df, "bankaccount", errors="coerce")<jupyter_output><empty_output><jupyter_text>`ignore`<jupyter_code>clean_nz_bankaccount(df, "bankaccount", errors="ignore")<jupyter_output><empty_output><jupyter_text>4. `validate_nz_bankaccount()` `validate_nz_bankaccount()` returns `True` when the input is a valid bankaccount. Otherwise it returns `False`.The input of `validate_nz_bankaccount()` 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_nz_bankaccount()` only returns the validation result for the specified column. If user doesn't specify the column name, `validate_nz_bankaccount()` returns the validation result for the whole DataFrame.<jupyter_code>from dataprep.clean import validate_nz_bankaccount
print(validate_nz_bankaccount("0102420100194000"))
print(validate_nz_bankaccount("01-0242-0100195-00"))
print(validate_nz_bankaccount("999 999 999"))
print(validate_nz_bankaccount("51824753556"))
print(validate_nz_bankaccount("004085616"))
print(validate_nz_bankaccount("hello"))
print(validate_nz_bankaccount(np.nan))
print(validate_nz_bankaccount("NULL"))<jupyter_output><empty_output><jupyter_text>Series<jupyter_code>validate_nz_bankaccount(df["bankaccount"])<jupyter_output><empty_output><jupyter_text>DataFrame + Specify Column<jupyter_code>validate_nz_bankaccount(df, column="bankaccount")<jupyter_output><empty_output><jupyter_text>Only DataFrame<jupyter_code>validate_nz_bankaccount(df)<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.09233207846245295, 'fraction_numerical': 0.03705171388943927, 'mean_word_length': 5.858695652173913, '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': '235265', 'license': 'MIT', 'n_tokens_mistral': 1652, 'n_tokens_neox': 1452, 'n_words': 449, 'path': 'docs/source/user_guide/clean/clean_nz_bankaccount.ipynb', 'repo_name': 'jwa345/dataprep', 'size': '5047'}