datamop.column_encoder
Functions
|
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