定义
- 数值型数据
- 出现频数最多的变量值
- 品质型数据、单项式分组数据
- 频数最多的组为众数组,该组的变量值(类型)就是众数
- 组距式分组数据
- 频数最多的组为众数组,通过公式求得众数
- 公式计算不适用于组距不相等的数据
适用范围
- 位置代表值
- 不会受极端值的影响
- 适用于描述具有较多个值的变量,且变量值的分布有明显集中趋势的情况
问题
大数据背景下,是否需要使用组距式分组数据求众数?
Python求众数的三种方法
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
1 # 求众数的方法(数值型和品质型) 2 import numpy as np 3 from scipy import stats 4 import pandas as pd 5 6 numlist1 = [1,2,3,4,5,6,7,5,9,8,6,7,3,5] #数值型数据 7 numlist2 = ['1','1','5', '3','3','2',] # 品质型数据 8 9 # 方法一:numpy 模块- 适用于非负数据集 10 counts = np.bincount( numlist2 ) #np.bincount方法返回一个长度为nums最大值的列表 11 res = np.argmax(counts) 12 print( '方法一求众数:', type(res), res ) 13 14 # 方法二:scipy模块 15 res = stats.mode( numlist2 ) 16 print( '方法二求众数: ', type(res), res[0] ) 17 #问题:有多个众数时只返回一个值 18 19 #方法三: pandas模块 - 可显示多个众数 20 s = pd.Series(numlist2) #也可以构建为DateFrame结构 21 res = s.mode() 22 print( '方法三求众数: ', type(res), res.values )
运行结果