Python value_counts()函数
1. 介绍
value_counts()
函数是 pandas 库中的一个非常实用的函数,它用于统计一列数据中各个不同取值的出现频次。具体来说,value_counts()
函数可以返回一个包含每个唯一值和对应频次的 pandas Series 对象。
在数据分析和数据清洗过程中,我们经常需要了解某个特定列中各个取值的分布情况,以作为进一步操作的依据。value_counts()
函数可以方便地帮助我们实现这一目标,不仅可以统计常见的数字、字符串等类型的数据,还可以统计日期、时间等类型的数据。
在本文中,我们将详细介绍 value_counts()
函数的使用方法,并通过一些示例代码演示其用法。
2. value_counts()
函数的语法
value_counts()
函数的语法如下:
该函数有五个常用的参数,分别是:
normalize
: 设置为True
时,返回的频次会被归一化,即表示百分比。默认为False
。sort
: 设置为True
时,返回结果将按照频次从高到低排序。默认为True
。ascending
: 设置为True
时,返回结果将按照索引升序排序。默认为False
。bins
: 设置为一个整数或者序列时,对结果进行分组统计。默认为None
,即不进行分组统计。dropna
: 设置为True
时,不统计缺失值。默认为True
。
3. 使用示例
首先,我们需要导入 pandas 库。如果你还没有安装该库,可以通过以下命令进行安装:
我们使用这个库来模拟一些示例数据。假设我们有一个保存着学生考试成绩的数据集,该数据集包含姓名、科目和得分三列。我们将使用 value_counts()
函数对其中的一列进行统计。现在让我们来看看如何使用 value_counts()
函数。
输出结果如下:
数学 4
英语 3
Name: 科目, dtype: int64
我们可以看到,value_counts()
函数返回了一个包含科目列每个唯一值及对应频次的 Series 对象。在这个例子中,科目列有两个不同的取值:数学和英语,其中数学出现了4次,英语出现了3次。
接下来,我们来逐个介绍 value_counts()
函数的各个参数,并通过示例代码展示其不同的应用场景。
3.1 参数 normalize
参数 normalize
是一个布尔值,默认为 False
。当该参数被设置为 True
时, value_counts()
函数将返回每个唯一值的百分比。
输出结果如下:
数学 0.571429
英语 0.428571
Name: 科目, dtype: float64
我们可以看到,返回的结果是每个唯一值的频次在总频次中所占的比例。在这个例子中,数学频次占总频次的57.14%,英语频次占总频次的42.85%。
3.2 参数 sort
参数 sort
是一个布尔值,默认为 True
。当该参数被设置为 True
时,返回的结果将按照频次从高到低排序。
输出结果如下:
数学 4
英语 3
Name: 科目, dtype: int64
我们可以看到,返回的结果按照频次从高到低进行了排序。
3.3 参数 ascending
参数 ascending
是一个布尔值,默认为 False
。当该参数被设置为 True
时,返回的结果将按照索引升序排序。
输出结果如下:
英语 3
数学 4
Name: 科目, dtype: int64
我们可以看到,返回的结果按照索引的升序进行了排序。
3.4 参数 bins
参数 bins
可以用于对结果进行分组统计。它可以接受一个整数或者一个序列作为输入。当传入一个整数时,value_counts()
函数将对结果进行指定个数的分组统计。当传入一个序列时,value_counts()
函数将根据该序列进行分组统计,并按照序列中的值进行标记。下面的示例代码展示了这两种不同的应用场景。
输出结果如下:
(78.989, 84.0] 2
(84.0, 89.0] 3
(89.0, 93.0] 2
Name: 得分, dtype: int64
我们可以看到, value_counts()
函数将得分列的取值分为了3组,并返回了每个分组的频次。
接下来,我们再来看一个通过传入序列进行分组统计的示例。
输出结果如下:
不及格 0
及格 2
优秀 5
Name: 得分, dtype: int64
我们可以看到,返回的结果将得分列的取值分为了三组,并根据传入的标签进行了标记。在这个例子中,分数小于60分的被标记为”不及格”,分数在60分析
字到80分的被标记为”及格”,分数大于80分的被标记为”优秀”。
3.5 参数 dropna
参数 dropna
是一个布尔值,默认为 True
。当该参数被设置为 True
时,value_counts()
函数将不统计缺失值。
输出结果如下:
85.0 2
80.0 1
90.0 1
93.0 1
92.0 1
78.0 1
Name: 得分, dtype: int64
我们可以看到,缺失值被排除在统计之外,返回的结果中没有缺失值。
4. 总结
本文介绍了 value_counts()
函数的使用方法,详细讲解了其语法和常用参数,并通过示例代码演示了不同参数的应用场景。value_counts()
函数是 pandas 中一项非常有用的功能,能够快速统计一列数据中不同取值的频次情况。在数据分析和数据清洗的过程中,我们经常需要了解数据的分布情况,value_counts()
函数可以帮助我们快速了解数据的统计信息,为后续操作提供依据。