datamop.column_encoder

Functions

column_encoder(data, columns[, method, order])

Encodes categorical columns using one-hot or ordinal encoding based on user input.

Module Contents

datamop.column_encoder.column_encoder(data, columns, method='one-hot', order=None)[source]

Encodes categorical columns using one-hot or ordinal encoding based on user input.

Parameters:

datapandas.DataFrame

The input DataFrame containing the dataset.

columnslist

The name of the columns to be encoded.

methodstr, optional, default=’one-hot’

The encoding method to use. Accepts either ‘one-hot’ for one-hot encoding or ‘ordinal’ for ordinal encoding.

orderdict, optional, default=None

A dictionary specifying the custom order for ordinal encoding. The keys should be column names, and the values should be lists defining the order of categories for each column.

Returns:

pd.DataFrame

A new DataFrame with the specified column encoded. The original column will be dropped.

Raises:

TypeError:

If input types are incorrect (e.g., non-DataFrame input, columns not a list of strings, method not a string, or order not a dictionary).

ValueError:

If required parameters are missing or invalid values are provided.

KeyError:

If specified columns are not found in the input DataFrame.

UserWarning:

If a column contains only one unique value or if there are missing values.

Examples:

>>> import pandas as pd
>>> data = pd.DataFrame({
...     'Sport': ['Tennis', 'Basketball', 'Football', 'Badminton'],
...     'Level': ['A', 'B', 'C', 'D']
... })
>>> encoded_df_onehot = column_encoder(data, columns=['Sport'], method='one-hot')
>>> print(encoded_df_onehot)
  Level  Sport_Badminton  Sport_Basketball  Sport_Football  Sport_Tennis
     A                0                 0               0             1
     B                0                 1               0             0
     C                0                 0               1             0
     D                1                 0               0             0
>>> encoded_df_ordinal = column_encoder(data, columns=['Level'], method='ordinal', order={'Level': ['A', 'B', 'C', 'D']})
>>> print(encoded_df_ordinal)
        Sport  Level
       Tennis      0
    Basketball     1
     Football      2
    Badminton      3