pandas.core.groupby.DataFrameGroupBy.value_counts # DataFrameGroupBy。value_counts (子集= None ,标准化= False ,排序= True ,升序= False , dropna = True ) [来源] # 返回包含唯一行数的 Series 或 DataFrame。 1.4.0 版本中的新增功能。 参数: 类似子集列表,可选计算唯一组合时使用的列。 标准化布尔值,默认 False返回比例而不是频率。 排序bool,默认 True按频率排序。 升序布尔值,默认 False按升序排序。 dropna bool,默认 True不包括包含 NA 值的行数。 返回: 系列或数据框如果 groupby as_index 为 True,则为 Series,否则为 DataFrame。 也可以看看 Series.value_counts系列上的等效方法。 DataFrame.value_countsDataFrame 上的等效方法。 SeriesGroupBy.value_countsSeriesGroupBy 上的等效方法。 笔记 如果 groupby as_index 为 True,则返回的 Series 将具有一个 MultiIndex,每个输入列一个级别。 如果 groupby as_index 为 False,则返回的 DataFrame 将有一个带有 value_counts 的附加列。该列标记为“计数”或“比例”,具体取决于参数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 Name: count, 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 Name: count, 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 Name: proportion, 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