如何在Python pandas中基于重复频次选取列的前10个高频值
pandas筛选country_state列频次最高前10值的方法
pandas的value_counts()方法天生支持单列值的频次统计,默认会按出现次数从高到低降序排列,直接取前10条即可得到目标结果。
最简代码实现
直接统计并取前10,返回结果为Series类型,索引是对应的country_state字符串,值为对应频次:
top10 = data['country_state'].value_counts().head(10)
常用扩展写法
如果需要将结果转为DataFrame格式,方便后续处理:
# 生成的DataFrame包含两列:country_state(取值)、count(对应出现次数) top10_df = data['country_state'].value_counts().reset_index(name='count').head(10)
如果需要保留所有频次并列第10的条目,避免截断并列结果:
# keep='all'会保留所有和第10名频次相同的条目 top10_with_tie = data['country_state'].value_counts().nlargest(n=10, keep='all')
补充说明:
value_counts()默认自动忽略空值,如果需要统计空值的出现频次,可传入参数dropna=False。
内容的提问来源于stack exchange,提问作者Subramanian K S
相关产品推荐
相关产品推荐

