Python 折叠多个变量类别

Python 折叠多个变量类别,python,pandas,encoding,categorical-data,Python,Pandas,Encoding,Categorical Data,我有一个df,它包括两个分类变量,它们有许多(>2000)个类别。变量“installer”的一个类别构成了数据的很大一部分: DWE 35.397980 Government 3.073401 RWE 2.017508 Commu 1.814141 DANIDA 1.757576

我有一个
df
,它包括两个分类变量,它们有许多(>2000)个类别。变量“installer”的一个类别构成了数据的很大一部分:

DWE                      35.397980
Government                3.073401
RWE                       2.017508
Commu                     1.814141
DANIDA                    1.757576
                           ...    
我怎样才能保留前三个类别,并将其余的类别折叠在一个名为“其他”的类别中,而不必列出所有类别

注意:我以前对基数较低的变量使用过replace,但必须列出所有要替换的值

我试过:

unique_values= df['installer'].unique()
for unique in unique_values: 
    if unique != 'DWE' or unique != 'Government' or unique != 'RWE': 
        df['installer'] = df['installer'].replace(unique, 'other')
    

先抓住重复使用最多的三个,然后过滤和分类“其他”如何

categories_to_keep = df['installer'].value_counts().index[:3]

df.loc[
    (~df.installer.isin(categories_to_keep)), 'installer'
] = 'Other'