I am trying to apply target encoding to categorical features using the category_encoders.TargetEncoder in Python. However, I keep getting the following error:
AttributeError: 'numpy.ndarray' object has no attribute 'groupby'
from category_encoders import TargetEncoder
from sklearn.model_selection import train_test_split
# Features for target encoding
encoding_cols = ['grade', 'sub_grade', 'home_ownership', 'verification_status',
'purpose', 'application_type', 'zipcode']
# Train-Test Split
X_train_cv, X_test, y_train_cv, y_test = train_test_split(x, y, test_size=0.25, random_state=1)
X_train, X_test_cv, y_train, y_test_cv = train_test_split(X_train_cv, y_train_cv, test_size=0.25, random_state=1)
# Initialize the Target Encoder
encoder = TargetEncoder()
# Apply Target Encoding
for i in encoding_cols:
X_train[i] = encoder.fit_transform(X_train[i], y_train) # **Error occurs here**
X_test_cv[i] = encoder.transform(X_test_cv[i])
X_test[i] = encoder.transform(X_test[i])
want to successfully apply target encoding to the categorical columns without encountering the 'numpy.ndarray' object has no attribute 'groupby' error.
pandas.DataFramebecause it has functiongroupbyTargetEncoderwith different objects-dataframe,list,numpy.array- and it always works, I can't reproduce problem with simple code. Maybe later I would try to run your colab code. At this moment you could useprint()to checktype()of data beforefit_transform. Maybe it can explain what can make problem