You can instantiate the OrdinalEncoder method like this:

OrdinalEncoder(handle_unknown='use_encoded_value', unknown_value=np.nan)

OrdinalEncoder has two parameters handle_unknown{‘error’, ‘use_encoded_value’} and unknown_value a you can see in the documentation in the parameters section https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.OrdinalEncoder.html

Answer from Jorge Luis Jiménez on Stack Overflow
🌐
GitHub
github.com › scikit-learn › scikit-learn › issues › 19903
Handle unknown categories in OrdinalEncoder when categories are specified · Issue #19903 · scikit-learn/scikit-learn
April 15, 2021 - For example, this snippet raises an exception while I would expect different behavior, i.e., replace unknown categories with -999. import pandas as pd from sklearn.preprocessing import OrdinalEncoder encoder = OrdinalEncoder(categories=[[-1, 0, 1]], handle_unknown="use_encoded_value", unknown_value=-999) df = pd.DataFrame({"x": [0, 0, 1, 0, 2, 5]}) encoder.fit_transform(df) # raises ValueError: Found unknown categories [2, 5] in column 0 during fit ·
Author: scikit-learn
🌐
Readthedocs
lale.readthedocs.io › en › latest › modules › lale.lib.sklearn.ordinal_encoder.html
lale.lib.sklearn.ordinal_encoder module — LALE 0.9.2-dev documentation
When the parameter handle_unknown is set to ‘use_encoded_value’, this parameter is required and will set the encoded value of unknown categories.
🌐
GitHub
github.com › scikit-learn › scikit-learn › issues › 17123
Add handle_missing and handle_unknown options to OrdinalEncoder · Issue #17123 · scikit-learn/scikit-learn
May 4, 2020 - Every encoder in scikit-learn-contrib/category_encoders has the option handle_unknown and handle_missing, giving users the flexibility to decide how to handle unknown or new values.
Author: scikit-learn
🌐
Scikit-learn
contrib.scikit-learn.org › category_encoders › ordinal.html
Ordinal — Category Encoders 2.11.1 documentation
static ordinal_encoding(X_in: DataFrame, mapping: list[dict[str, str | dict | Series]] | None = None, cols: list[str] = None, handle_unknown: str = 'value', handle_missing: str = 'value', index_start: int = 1) → tuple[DataFrame, list[dict]][source]
🌐
Frank WorkShop
frankworkshophome.wordpress.com › 2019 › 11 › 02 › a-better-encoder-for-sklearn-2
A Better OrdinalEncoder for Scikit-learn – Frank WorkShop
November 2, 2019 - In order to avoid unknown value in the testing set, we have to fit the entire data set for the OrdinalEncoder, which means we need to fit the OrdinalEncoder before splitting the dataset into training and testing. Even if we can fix unknown value in this way, it still does not work when new samples with unknown value fed into the model. A more powerful Encoder named OneHotEncoder perfectly solve the above issue, since it has an argument ‘handle_unknown’. You can set this argument as ‘ignore’ to avoid raising an error.
Find elsewhere
🌐
Andrew Wheeler
andrewpwheeler.com › 2021 › 09 › 14 › extending-sklearns-ordinalencoder
Extending sklearns OrdinalEncoder | Andrew Wheeler
September 14, 2021 - from sklearn.preprocessing import OrdinalEncoder import numpy as np import pandas as pd class SimpleOrdEnc(): def __init__(self, dtype=int, unknown_value=-1, lim_k=None, lim_count=None): self.unknown_value = unknown_value self.dtype = dtype self.lim_k = lim_k self.lim_count = lim_count self.vars = None self.soe = None def fit(self, X): self.vars = list(X) # Now creating fit for each variable res_oe = {} for v in list(X): res_oe[v] = OrdinalEncoder(dtype=self.dtype, handle_unknown='use_encoded_value', unknown_value=self.unknown_value) # Get unique values minus missing xc = X[v].value_counts().r
🌐
GitHub
github.com › scikit-learn › scikit-learn › issues › 13488
Handle Error Policy in OrdinalEncoder · Issue #13488 · scikit-learn/scikit-learn
March 21, 2019 - Preprocessor class OneHotEncoder allows transformation if unknown values are found. It would be great to introduce the same option to OrdinalEncoder. It seems simple to do since OrdinalEncoder (as well as OneHotEncoder) is derived from _BaseEncoder which actually implements handling error policy.
Author: scikit-learn
🌐
Scikit-learn course
inria.github.io › scikit-learn-mooc › python_scripts › 03_categorical_pipeline.html
Encoding of categorical variables — Scikit-learn course
If that option is chosen, you can define a fixed value that is assigned to all unknown categories during transform. For example, OrdinalEncoder(handle_unknown='use_encoded_value', unknown_value=-1) would set all values encountered during transform to -1 which are not part of the data encountered during the fit call.
🌐
GitHub
github.com › scikit-learn › scikit-learn › issues › 12365
Missing handle_unknown parameter in OrdinalEncoder · Issue #12365 · scikit-learn/scikit-learn
October 12, 2018 - Description When trying to fit OrdinalEncoder with predefined string categorical values it raises an expection of AttributeError: 'OrdinalEncoder' object has no attribute 'handle_unknown' Steps/Cod...
Author: scikit-learn
🌐
GitHub
github.com › scikit-learn › scikit-learn › issues › 19228
OrdinalEncoder does not check the input of handle_unknown · Issue #19228 · scikit-learn/scikit-learn
January 21, 2021 - During a lecture today, the following was working: from sklearn.preprocessing import OrdinalEncoder enc = OrdinalEncoder(handle_unknown="ignore") X = [['Male', 1], ['Female&#3...
Author: scikit-learn