Skip to main content
 首页 » 编程设计

python之将有限的记录分组,其余的分组为其他

2025年05月04日22java哥

有没有办法像这样对数据进行分组

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 之后执行此操作,因为结果将降序排列。给定系列 s,即 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