频数分析

频数分析先将给定的数据从小到大进行排序,然后根据最小值和最大值对数据序列进行分箱,即等间隔地分成多个等份,得到每个等份的起始值和终止值,最后计算原数据落在每个分箱内的个数。通过频数分析可以探查数据的分布情况。

Python中用pandas包的qcut函数进行数据分箱。在Python IDLE Shell窗口键入下面的命令行:

code.python
>>> import pandas as pd
>>> x=[1,9,5,3,12,8,20,4,5]
>>> x
[1, 9, 5, 3, 12, 8, 20, 4, 5]
>>> st=set(x)    #列表转换为集合,去重,排序
>>> st
{1, 3, 4, 5, 8, 9, 12, 20}
>>> ser=pd.Series(list(st))    #创建Series
>>> cut=pd.qcut(ser,20)    #用qcut函数进行分箱
>>> freq=cut.value_counts(sort=False)    #计算落在各分箱的数据个数
>>> freq
(0.999, 1.7]     1
(1.7, 2.4]       0
……
(14.4, 17.2]     0
(17.2, 20.0]     1
dtype: int64