How to Use Pandas value_counts() Function (With Examples)


You can use the value_counts() function to count the frequency of unique values in a pandas Series.

This function uses the following basic syntax:

my_series.value_counts()

The following examples show how to use this syntax in practice.

Example 1: Count Frequency of Unique Values

The following code shows how to count the occurrences of unique values in a pandas Series:

import pandas as pd

#create pandas Series
my_series = pd.Series([3, 3, 3, 3, 4, 4, 7, 7, 8, 9])

#count occurrences of unique values in Series
my_series.value_counts()

3    4
4    2
7    2
8    1
9    1
dtype: int64

This tells us:

  • The value 3 occurs 4 times.
  • The value 4 occurs 2 times.
  • The value 7 occurs 2 times.

And so on.

Example 2: Count Frequency of Unique Values (Including NaNs)

By default, the value_counts() function does not show the frequency of NaN values.

However, you can use the dropna argument to display the frequency of NaN values:

import pandas as pd
import numpy as np

#create pandas Series with some NaN values
my_series = pd.Series([3, 3, 3, 3, 4, 4, 7, 7, 8, 9, np.nan, np.nan])

#count occurrences of unique values in Series, including NaNs
my_series.value_counts(dropna=False)

3.0    4
4.0    2
7.0    2
NaN    2
8.0    1
9.0    1
dtype: int64

Example 3: Count Relative Frequency of Unique Values

The following code shows how to use the normalize argument to count the relative frequency of unique values in a pandas Series:

import pandas as pd

#create pandas Series
my_series = pd.Series([3, 3, 3, 3, 4, 4, 7, 7, 8, 9])

#count occurrences of unique values in Series
my_series.value_counts(normalize=True)

3    0.4
4    0.2
7    0.2
8    0.1
9    0.1
dtype: float64

This tells us:

  • The value 3 represents 40% of all values in the Series.
  • The value 4 represents 20% of all values in the Series.
  • The value 7 represents 20% of all values in the Series.

And so on.

Example 4: Count Frequency in Bins

The following code shows how to use the bins argument to count the frequency of values in a pandas Series that fall into equal-sized bins:

import pandas as pd

#create pandas Series
my_series = pd.Series([3, 3, 3, 3, 4, 4, 7, 7, 8, 9])

#count occurrences of unique values in Series
my_series.value_counts(bins=3)

(3.0, 5.0]       6
(5.0, 7.0]       2
(7.0, 9.0]       2
dtype: int64

This tells us:

  • There are 6 values that fall in the range 3 to 5.
  • There are 2 values that fall in the range 5 to 7.
  • There are 2 values that fall in the range 7 to 9.

Example 5: Count Frequency of Values in Pandas DataFrame

We can also use the value_counts() function to calculate the frequency of unique values in a specific column of a pandas DataFrame:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'points': [9, 9, 9, 10, 10, 13, 15, 22],
                   'assists': [5, 7, 7, 9, 12, 9, 9, 4],
                   'rebounds': [11, 8, 10, 6, 6, 5, 9, 12]})
#count occurrences of unique values in 'points' column
df['points'].value_counts()

9     3
10    2
13    1
15    1
22    1
Name: points, dtype: int64

Additional Resources

The following tutorials explain how to use other common functions in pandas:

How to Use describe() Function in Pandas
How to Count Number of Rows in Pandas
How to Count Observations by Group in Pandas

Leave a Reply

Your email address will not be published.