Pandas DataFrame: Count the number of elements and dimensions

Updated: February 19, 2024 By: Guest Contributor Post a comment

Getting Started

Pandas is a popular Python library for data manipulation and analysis. Essential to these tasks is understanding the size and shape of the data you are working with, which directly affects data processing, manipulation, and analysis. This tutorial is a comprehensive guide on counting the number of elements and dimensions in a Pandas DataFrame, covering methods from basic to advanced with code examples.

Before diving into the various counting methods, ensure you have the Pandas library installed:

pip install pandas

And import the library in your Python script:

import pandas as pd

Understanding DataFrame Structure

At the core of Pandas is the DataFrame. It is a two-dimensional, size-mutable, and potentially heterogeneous tabular data structure with labeled axes (rows and columns). To begin, let’s create a simple DataFrame:

import pandas as pd

data = {
    'Name': ['Anna', 'Bob', 'Catherine', 'David', 'Emily'],
    'Age': [28, 34, 29, 42, 21],
    'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix']

df = pd.DataFrame(data)

This code snippet creates a DataFrame with three columns (Name, Age, and City) and five rows.

Counting Elements and Dimensions

There are several ways to count elements and dimensions in a DataFrame. Let’s explore them one by one.


The size attribute returns the total number of elements in the DataFrame.

total_elements = df.size
print("Total number of elements:", total_elements)


Total number of elements: 15

This output tells us there are 15 elements in our DataFrame, calculated by multiplying the number of rows by the number of columns.


The shape attribute provides a tuple representing the dimensionality of the DataFrame. The first element of the tuple is the number of rows, and the second is the number of columns.

dimensions = df.shape
print("Dimensions (Rows, Columns):", dimensions)


Dimensions (Rows, Columns): (5, 3)

This output indicates our DataFrame has 5 rows and 3 columns.


To count the number of rows, you can use the Python built-in function len() with the DataFrame as its argument.

num_rows = len(df)
print("Number of rows:", num_rows)


Number of rows: 5

This function returns the number of rows in the DataFrame, effectively counting its length.

Counting Non-NA Cells

Pandas DataFrame offers the count() method to count the number of non-NA/null observations across the given axis. By default, it counts along each column:

non_na_counts = df.count()
print("Count of non-NA cells per column:\n", non_na_counts)


Count of non-NA cells per column:
 Name    5
Age     5
City    5
dtype: int64

This method is particularly useful for datasets with missing data, providing insights into the actual number of available data points in each column.

Advanced Counting Techniques

For more detailed analysis and data manipulation, Pandas offers advanced counting techniques.


The nunique() method returns the number of unique non-NA values in each column. It is extremely useful for understanding the diversity of data.

unique_values = df.nunique()
print("Number of unique non-NA values per column:\n", unique_values)


Number of unique non-NA values per column:
 Name    5
Age     5
City    5
dtype: int64

This output shows each column in our example DataFrame contains five unique values.

Describe the DataFrame

The describe() method provides a summary of the statistics related to the DataFrame’s numeric columns. Although not directly a counting method, it offers a quick glance at the data, including count, mean, std, min, and max among other statistics.

df_summary = df.describe()
print("DataFrame summary:\n", df_summary)

For example, the ‘count’ row in the summary provides the number of non-NA entries in each numeric column.


Understanding the size and shape of your data is crucial for effective data manipulation and analysis in Pandas. This tutorial covered various methods to count the number of elements and dimensions in a DataFrame, ranging from simple techniques like size, shape, and len() to more advanced methods such as count() and nunique(). Employing these methods will help you better understand your data and guide your analysis and data processing strategies.