pandas.DataFrame.value_counts #

数据框。value_counts (子集= None ,标准化= False ,排序= True ,升序= False , dropna = True ) [来源] #

返回一个包含数据框中每个不同行的频率的系列。

参数
子集标签或标签列表,可选

计算唯一组合时使用的列。

标准化布尔值,默认 False

返回比例而不是频率。

排序bool,默认 True

True 时按频率排序。当为 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