datamop.column_encoder ====================== .. py:module:: datamop.column_encoder Functions --------- .. autoapisummary:: datamop.column_encoder.column_encoder Module Contents --------------- .. py:function:: column_encoder(data, columns, method='one-hot', order=None) Encodes categorical columns using one-hot or ordinal encoding based on user input. Parameters: ----------- data : pandas.DataFrame The input DataFrame containing the dataset. columns : list The name of the columns to be encoded. method : str, optional, default='one-hot' The encoding method to use. Accepts either 'one-hot' for one-hot encoding or 'ordinal' for ordinal encoding. order : dict, 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