Предполагая, что у вас есть фрейм данных Pandas и у вас есть наборы поездов / тестов, которые вы хотите трансформировать.Небольшой фрагмент кода превратит ваши низкие счета в «другие».Я установил порог в 100, но вы можете изменить его на то, что вам нужно!
В основном код получает список значений с низким счетом и заменяет их на желаемое значение.
Примечание: вы можете запустить .value_counts () для вашего столбца, чтобы увидеть, что там, перед преобразованием столбца категории.
def transform_lowcount_cat(train=train, test=test, colstoreplace=colstoreplace, replaceval = 'other', threshold=100):
for col in colstoreplace:
unique_vals_cat = pd.DataFrame(train[col].value_counts())
low_val_cat = unique_vals_cat[unique_vals_cat[col] < threshold].index.values
train[col].replace(low_val_cat, replaceval, inplace=True)
print(col + ' - TRAIN set transformed')
if test == None:
print('TEST set NOT transformed')
else:
test[col].replace(low_val_cat, replaceval, inplace=True)
print(col + ' - TEST set transformed')
И затем вы создадите список столбцов / столбцов, которые вы хотитепреобразование и запустить код с желаемым значением замены и пороговым пределом.Обратите внимание, что это выполняет преобразование на месте.
colstoreplace = ['Col1','Col2']
transform_lowcount_cat(train=train, test=test, colstoreplace=colstoreplace, replaceval='whatever you want!', threshold = 100)