Это относительно просто сделать с помощью модуля pandas. Представьте, что df содержит ваш столбец с категориальным:
import pandas as pd
df = pd.DataFrame({ 'x':['a','b','c','a','b','a','d','e','f']})
Вы можете просто подсчитать значения внутри:
cnt = df.x.value_counts()
И создать дополнительный столбец, указывающий, к какой группе принадлежит данная строка: Обратите внимание, что все низкие количество категорийных значений будет в одной группе.
df['group'] = df['x'].apply( lambda x: cnt[x] if cnt[x] >= 2 else 0 )
Вы можете изменить значение 2 на любой порог, ниже которого все категории будут в одной группе. Наконец, создайте фиктивные переменные вроде этого:
dummies = pd.get_dummies(df['group'])
Предполагая, что вам нужны те же категории подсчета (особенно с малым количеством) до go в одинаковых фиктивных переменных.