欢迎访问宙启技术站
智能推送

从根本上理解python中的value_counts()函数

发布时间:2023-07-03 16:18:02

value_counts()函数是pandas库中的一个函数,用于统计一个Series中每个元素的出现次数。该函数返回一个新的Series,其中索引表示原始Series中的 元素,而数值表示该元素在原始Series中出现的次数。

value_counts()函数的原理可以简单理解为:遍历原始Series中的每个元素,将其作为字典的键,在字典中查找该键值对应的值,并进行计数。如果字典中不存在该键,则创建新的键值对,并将值初始化为1;如果字典中已存在该键,则将对应的值加1。最后,将字典中的键值对转换为一个新的Series返回。

使用示例:

import pandas as pd

data = [1, 2, 3, 2, 3, 3]
series = pd.Series(data)

result = series.value_counts()
print(result)

输出结果为:

3    3
2    2
1    1
dtype: int64

上述例子中,原始Series包含了6个元素,其中1出现了1次,2出现了2次,3出现了3次。因此,value_counts()函数返回了一个包含了3个元素的新Series,其中索引分别是3、2和1,对应的数值分别是3、2和1。

value_counts()函数还可以通过设置参数来进行更灵活的操作。常用的参数包括:

- normalize:默认为False,表示返回的数值是元素的个数;如果设置为True,则返回的数值表示元素的百分比。

- sort:默认为True,表示按照元素的出现次数从大到小排序;如果设置为False,则不进行排序。

- ascending:默认为False,表示按照出现次数从大到小的方式进行排序;如果设置为True,则按照出现次数从小到大排序。

例如,对于上述示例中的原始Series:

result = series.value_counts(normalize=True, sort=False, ascending=True)
print(result)

输出结果为:

1    0.166667
2    0.333333
3    0.500000
dtype: float64

该示例中,通过设置normalize参数为True,返回的数值表示元素的百分比;通过设置sort参数为False,表示不进行排序;通过设置ascending参数为True,表示按照出现次数从小到大排序。最终结果中,1出现了1次,占总数的16.67%;2出现了2次,占总数的33.33%;3出现了3次,占总数的50.00%。