pandas.core.groupby.DataFrameGroupBy.value_counts#
- DataFrameGroupBy.value_counts(subset=None, normalize=False, sort=True, ascending=False, dropna=True)[源代码]#
返回包含唯一行计数的Series或DataFrame。
1.4.0 新版功能.
- 参数
- subset类似列表,可选
计算唯一组合时使用的列。
- normalize布尔值,默认为False
返回比例而不是频率。
- sort布尔值,默认为True
按频率排序。
- ascending布尔值,默认为False
按升序排序。
- dropna布尔值,默认为True
不包括包含NA值的行数。
- 退货
- 系列或DataFrame
如果GROUPBY AS_INDEX为True,则为Serial,否则为DataFrame。
参见
Series.value_counts
级数的等价法。
DataFrame.value_counts
DataFrame上的等效方法。
SeriesGroupBy.value_counts
SeriesGroupBy上的等效方法。
注意事项
如果GROUPBY AS_INDEX为True,则返回的Series将有一个多重索引,每个输入列有一个级别。
如果GROUPBY AS_INDEX为FALSE,则返回的DataFrame将有一个值为_Counts的附加列。该列被标记为‘count’或‘proportion’,具体取决于
normalize
参数。
默认情况下,包含任何NA值的行将从结果中省略。
默认情况下,结果将按降序排列,因此每组的第一个元素是出现频率最高的行。
示例
>>> df = pd.DataFrame({ ... 'gender': ['male', 'male', 'female', 'male', 'female', 'male'], ... 'education': ['low', 'medium', 'high', 'low', 'high', 'low'], ... 'country': ['US', 'FR', 'US', 'FR', 'FR', 'FR'] ... })
>>> df gender education country 0 male low US 1 male medium FR 2 female high US 3 male low FR 4 female high FR 5 male low FR
>>> df.groupby('gender').value_counts() gender education country female high FR 1 US 1 male low FR 2 US 1 medium FR 1 dtype: int64
>>> df.groupby('gender').value_counts(ascending=True) gender education country female high FR 1 US 1 male low US 1 medium FR 1 low FR 2 dtype: int64
>>> df.groupby('gender').value_counts(normalize=True) gender education country female high FR 0.50 US 0.50 male low FR 0.50 US 0.25 medium FR 0.25 dtype: float64
>>> df.groupby('gender', as_index=False).value_counts() gender education country count 0 female high FR 1 1 female high US 1 2 male low FR 2 3 male low US 1 4 male medium FR 1
>>> df.groupby('gender', as_index=False).value_counts(normalize=True) gender education country proportion 0 female high FR 0.50 1 female high US 0.50 2 male low FR 0.50 3 male low US 0.25 4 male medium FR 0.25