pandas.DataFrame.value_counts # 数据框。value_counts (子集= None ,标准化= False ,排序= True ,升序= False , dropna = True ) [来源] # 返回一个包含数据框中每个不同行的频率的系列。 参数: 子集标签或标签列表,可选计算唯一组合时使用的列。 标准化布尔值,默认 False返回比例而不是频率。 排序bool,默认 TrueTrue 时按频率排序。当为 False 时,按 DataFrame 列值排序。 升序布尔值,默认 False按升序排序。 dropna bool,默认 True不包括包含 NA 值的行数。 1.3.0 版本中的新增功能。 返回: 系列 也可以看看 Series.value_counts系列上的等效方法。 笔记 返回的系列将具有一个多重索引,每个输入列具有一个级别,但单个标签有一个索引(非多重)。默认情况下,结果中会忽略包含任何 NA 值的行。默认情况下,生成的系列将按降序排列,以便第一个元素是最常出现的行。 例子 >>> df = pd.DataFrame({'num_legs': [2, 4, 4, 6], ... 'num_wings': [2, 0, 0, 0]}, ... index=['falcon', 'dog', 'cat', 'ant']) >>> df num_legs num_wings falcon 2 2 dog 4 0 cat 4 0 ant 6 0 >>> df.value_counts() num_legs num_wings 4 0 2 2 2 1 6 0 1 Name: count, dtype: int64 >>> df.value_counts(sort=False) num_legs num_wings 2 2 1 4 0 2 6 0 1 Name: count, dtype: int64 >>> df.value_counts(ascending=True) num_legs num_wings 2 2 1 6 0 1 4 0 2 Name: count, dtype: int64 >>> df.value_counts(normalize=True) num_legs num_wings 4 0 0.50 2 2 0.25 6 0 0.25 Name: proportion, dtype: float64 将dropna设置为False我们还可以对具有 NA 值的行进行计数。 >>> df = pd.DataFrame({'first_name': ['John', 'Anne', 'John', 'Beth'], ... 'middle_name': ['Smith', pd.NA, pd.NA, 'Louise']}) >>> df first_name middle_name 0 John Smith 1 Anne <NA> 2 John <NA> 3 Beth Louise >>> df.value_counts() first_name middle_name Beth Louise 1 John Smith 1 Name: count, dtype: int64 >>> df.value_counts(dropna=False) first_name middle_name Anne NaN 1 Beth Louise 1 John Smith 1 NaN 1 Name: count, dtype: int64 >>> df.value_counts("first_name") first_name John 2 Anne 1 Beth 1 Name: count, dtype: int64