Generally, the data in each column represents a different feature of a pandas dataframe. It may be continuous, categorical, or something totally different like distinct texts. If you’re not sure about the nature of the values you’re dealing with, it might be a good exploratory step to know about the count of distinct values. In this tutorial, we’ll look at how to get the count of unique values in each column of a pandas dataframe.
If you prefer a video tutorial over text, check out the following video detailing the steps in this tutorial –
The nunique()
function
To count the unique values of each column of a dataframe, you can use the pandas dataframe nunique()
function. The following is the syntax:
counts = df.nunique()
Here, df
is the dataframe for which you want to know the unique counts. It returns a pandas Series of counts. By default, the pandas dataframe nunique()
function counts the distinct values along axis=0
, that is, row-wise which gives you the count of distinct values in each column.
Examples
Let’s look at some of the different use cases for getting unique counts through some examples. First, we’ll create a sample dataframe that we’ll be using throughout this tutorial.
Highlighted programs for you
Flatiron School
Flatiron School
University of Maryland Global Campus
University of Maryland Global Campus
Creighton University
Creighton University
import pandas as pd import numpy as np # create a sample dataframe data = { 'EmpCode': ['E1', 'E2', 'E3', 'E4', 'E5'], 'Gender': ['Male', 'Female', 'Female', 'Male', 'Male'], 'Age': [27, 24, 29, 24, 25], 'Department': ['Accounting', 'Sales', 'Accounting', np.nan, 'Sales'] } df = pd.DataFrame(data) # display the dataframe df
Output:

Here, we created a dataframe with information about some employees in an office. The dataframe has the following columns – “EmpCode”, “Gender”, “Age”, and the “Department”.
1. Count of unique values in each column
Using the pandas dataframe nunique()
function with default parameters gives a count of all the distinct values in each column.
# count of unique values in each column print(df.nunique())
Output:
EmpCode 5 Gender 2 Age 4 Department 2 dtype: int64
In the above example, the nunique()
function returns a pandas Series with counts of distinct values in each column. Note that, for the Department
column we only have two distinct values as the nunique()
function, by default, ignores all NaN values.
2. Count of unique values in each row
You can also get the count of distinct values in each row by setting the axis
parameter to 1
or 'columns'
in the nunique()
function.
# count of unique values in each row print(df.nunique(axis=1))
Output:
0 4 1 4 2 4 3 3 4 4 dtype: int64
In the above example, you can see that we have 4 distinct values in each row except for the row with index 3
which has 3 unique values due to the presence of a NaN value.
For more on the pandas dataframe nunique()
function, refer to its official documentation.
Good to know
In case you want to know the count of each of the distinct values of a specific column, you can use the pandas value_counts()
function. In the above dataframe df
, if you want to know the count of each distinct value in the column Gender
, you can use –
# count of each unique value in the "Gender" column print(df['Gender'].value_counts())
Output:
Male 3 Female 2 Name: Gender, dtype: int64
In the above example, the pandas series value_counts()
function is used to get the counts of 'Male'
and 'Female'
, the distinct values in the column B
of the dataframe df
.
With this, we come to the end of this tutorial. The code examples and results presented in this tutorial have been implemented in a Jupyter Notebook with a python (version 3.8.3) kernel having numpy version 1.18.5 and pandas version 1.0.5
Subscribe to our newsletter for more informative guides and tutorials.
We do not spam and you can opt out any time.
More on Pandas DataFrames –
- Pandas – Sort a DataFrame
- Change Order of Columns of a Pandas DataFrame
- Pandas DataFrame to a List in Python
- Pandas – Count of Unique Values in Each Column
- Pandas – Replace Values in a DataFrame
- Pandas – Filter DataFrame for multiple conditions
- Pandas – Random Sample of Rows
- Pandas – Random Sample of Columns
- Save Pandas DataFrame to a CSV file
- Pandas – Save DataFrame to an Excel file
- Create a Pandas DataFrame from Dictionary
- Convert Pandas DataFrame to a Dictionary
- Drop Duplicates from a Pandas DataFrame
- Concat DataFrames in Pandas
- Append Rows to a Pandas DataFrame
- Compare Two DataFrames for Equality in Pandas
- Get Column Names as List in Pandas DataFrame
- Select One or More Columns in Pandas
- Pandas – Rename Column Names
- Pandas – Drop one or more Columns from a Dataframe
- Pandas – Iterate over Rows of a Dataframe
- How to Reset Index of a Pandas DataFrame?
- Read CSV files using Pandas – With Examples
- Apply a Function to a Pandas DataFrame