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