IIUC, вы хотите заменить имена групп на Other
, если их количество меньше определенного числа.
В вашем методе использование функции replace
неверно. В этом случае вы должны передать словарь в качестве входных данных, который имеет отображение значения столбца:
df_ch.replace({'Keyword': {x:'other' for x in y}}, inplace=True)
Вот еще один подход без цикла
Сначала посчитайте цифры
x = df_ch['Keyword'].value_counts().reset_index()
# index 0
#0 (not provie) 11
#1 (not set) 7
#2 keyword1 1
#3 display 1
Затем присвойте Other
группам, число которых ниже определенного порога (5 здесь).
df_ch.loc[df_ch['Keyword'].isin(x['index'].loc[x['Keyword']<5]), 'Keyword']='Other'
df_ch['Keyword']
0 (not provie)
1 (not provie)
2 (not set)
3 (not set)
4 (not provie)
5 (not provie)
6 (not set)
7 (not set)
8 Other
9 (not provie)
10 (not set)
11 (not set)
12 (not provie)
13 (not provie)
14 (not set)
15 (not provie)
16 (not provie)
17 Other
18 (not provie)
19 (not provie)