pandas.Series.value_counts#

Series.value_counts(normalize=False, sort=True, ascending=False, bins=None, dropna=True)[源代码]#

返回一个包含唯一值计数的 Series。

结果对象将按降序排列,因此第一个元素是最频繁出现的元素。默认情况下排除 NA 值。

Parameters:
normalizebool,默认 False

如果为 True,则返回的对象将包含唯一值的相对频率。

sortbool, default True

如果为 True,则按频率排序。如果为 False,则保留数据的顺序。

ascendingbool,默认 False

按升序排序。

binsint, optional

与其计数,不如将值分组到半开区间中,这是 pd.cut 的便利功能,仅适用于数值数据。

dropnabool, default True

不包括 NaN 的计数。

Returns:
Series

参见

Series.count

Series 中非 NA 元素的数量。

DataFrame.count

DataFrame 中非 NA 元素的数量。

DataFrame.value_counts

DataFrame 上的等效方法。

Examples

>>> index = pd.Index([3, 1, 2, 3, 4, np.nan])
>>> index.value_counts()
3.0    2
1.0    1
2.0    1
4.0    1
Name: count, dtype: int64

normalize 设置为 True 时,通过将所有值除以总和来返回相对频率。

>>> s = pd.Series([3, 1, 2, 3, 4, np.nan])
>>> s.value_counts(normalize=True)
3.0    0.4
1.0    0.2
2.0    0.2
4.0    0.2
Name: proportion, dtype: float64

bins

分组 bin 对于将连续变量转换为分类变量很有用;与其计算值的唯一出现次数,不如将索引划分为指定数量的半开 bin。

>>> s.value_counts(bins=3)
(0.996, 2.0]    2
(2.0, 3.0]      2
(3.0, 4.0]      1
Name: count, dtype: int64

dropna

dropna 设置为 False 时,我们还可以看到 NaN 索引值。

>>> s.value_counts(dropna=False)
3.0    2
1.0    1
2.0    1
4.0    1
NaN    1
Name: count, dtype: int64