pandas.core.groupby.SeriesGroupBy.value_counts#
- SeriesGroupBy.value_counts(normalize=False, sort=True, ascending=False, bins=None, dropna=True)[源代码][源代码]#
返回一个包含唯一行计数的 Series 或 DataFrame。
Added in version 1.4.0.
- 参数:
- normalize布尔值, 默认为 False
返回比例而不是频率。
- sort布尔值, 默认为 True
按频率排序。
- 升序布尔值, 默认为 False
按升序排序。
- bins整数或整数列表,可选
与其计算值,不如将它们分组到半开的箱子中,这是为 pd.cut 提供的一个便利,仅适用于数值数据。
- dropna布尔值, 默认为 True
不要包含包含NA值的行数。
- 返回:
- Series 或 DataFrame
如果 groupby
as_index
为 True,则为 Series,否则为 DataFrame。
参见
Series.value_counts
Series 上的等效方法。
DataFrame.value_counts
DataFrame 上的等效方法。
DataFrameGroupBy.value_counts
DataFrameGroupBy 上的等效方法。
备注
如果 groupby
as_index
为 True,则返回的 Series 将具有一个 MultiIndex,每个输入列对应一个级别。如果 groupby
as_index
为 False,则返回的 DataFrame 将有一个额外的列,包含 value_counts。该列标签为 ‘count’ 或 ‘proportion’,取决于normalize
参数。
默认情况下,包含任何 NA 值的行将从结果中省略。
默认情况下,结果将按降序排列,以便每个组中的第一个元素是最常出现的行。
例子
>>> s = pd.Series( ... [1, 1, 2, 3, 2, 3, 3, 1, 1, 3, 3, 3], ... index=["A", "A", "A", "A", "A", "A", "B", "B", "B", "B", "B", "B"], ... ) >>> s A 1 A 1 A 2 A 3 A 2 A 3 B 3 B 1 B 1 B 3 B 3 B 3 dtype: int64 >>> g1 = s.groupby(s.index) >>> g1.value_counts(bins=2) A (0.997, 2.0] 4 (2.0, 3.0] 2 B (2.0, 3.0] 4 (0.997, 2.0] 2 Name: count, dtype: int64 >>> g1.value_counts(normalize=True) A 1 0.333333 2 0.333333 3 0.333333 B 3 0.666667 1 0.333333 Name: proportion, dtype: float64