You can use the nunique() function to count the number of unique values in a pandas DataFrame.
This function uses the following basic syntax:
#count unique values in each column df.nunique() #count unique values in each row df.nunique(axis=1)
The following examples show how to use this function in practice with the following pandas DataFrame:
import pandas as pd
#create DataFrame
df = pd.DataFrame({'team': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
'points': [8, 8, 13, 13, 22, 22, 25, 29],
'assists': [5, 8, 7, 9, 12, 9, 9, 4],
'rebounds': [11, 8, 11, 6, 6, 5, 9, 12]})
#view DataFrame
df
team points assists rebounds
0 A 8 5 11
1 A 8 8 8
2 A 13 7 11
3 A 13 9 6
4 B 22 12 6
5 B 22 9 5
6 B 25 9 9
7 B 29 4 12
Example 1: Count Unique Values in Each Column
The following code shows how to count the number of unique values in each column of a DataFrame:
#count unique values in each column
df.nunique()
team 2
points 5
assists 5
rebounds 6
dtype: int64
From the output we can see:
- The ‘team’ column has 2 unique values
- The ‘points’ column has 5 unique values
- The ‘assists’ column has 5 unique values
- The ‘rebounds’ column has 6 unique values
Example 2: Count Unique Values in Each Row
The following code shows how to count the number of unique values in each row of a DataFrame:
#count unique values in each row
df.nunique(axis=1)
0 4
1 2
2 4
3 4
4 4
5 4
6 3
7 4
dtype: int64
From the output we can see:
- The first row has 4 unique values
- The second row has 2 unique values
- The third row has 4 unique values
And so on.
Example 3: Count Unique Values by Group
The following code shows how to count the number of unique values by group in a DataFrame:
#count unique 'points' values, grouped by team
df.groupby('team')['points'].nunique()
team
A 2
B 3
Name: points, dtype: int64
From the output we can see:
- Team ‘A’ has 2 unique ‘points’ values
- Team ‘B’ has 3 unique ‘points’ values
Additional Resources
The following tutorials explain how to perform other common operations in pandas:
How to Count Observations by Group in Pandas
How to Count Missing Values in Pandas
How to Use Pandas value_counts() Function