python - 将有限的记录和其余的记录分组为其他
问题描述
有什么方法可以对数据进行分组,例如
df.Feature.value_counts(normalize=True)
但不要给整个记录,只给我前 5 个记录组,其余记录组为“其他”
例如,这是我在运行上面的代码时得到的输出
NUEVO LEON 9.566025
ESTADO DE MEXICO 8.979984
TAMAULIPAS 7.939926
VERACRUZ 7.686035
DISTRITO FEDERAL 7.257108
COAHUILA 5.283328
JALISCO 4.835284
BAJA CALIFORNIA 4.280905
MICHOACAN 4.160830
GUANAJUATO 4.129765
这是我正在寻找的输出
NUEVO LEON 9.566025
ESTADO DE MEXICO 8.979984
TAMAULIPAS 7.939926
VERACRUZ 7.686035
DISTRITO FEDERAL 7.257108
OTHERS 24.56156
解决方案
我只是在之后执行此操作,value_counts
因为结果将按降序排序。给定 Seriess
的结果df.Feature.value_counts(normalize=True)
,您可以保留前 5 个,然后将其他所有内容相加。
import pandas as pd
N = 5
pd.concat([s.iloc[:N], pd.Series(s.iloc[N:].sum(), index=['OTHERS'])])
#NUEVO LEON 9.566025
#ESTADO DE MEXICO 8.979984
#TAMAULIPAS 7.939926
#VERACRUZ 7.686035
#DISTRITO FEDERAL 7.257108
#OTHERS 22.690112
#dtype: float64