Pandas: Check if all values in column are zeros

This article will discuss checking if all values in a DataFrame column are zero (0) or not.

First of all, we will create a DataFrame from a list of tuples,

import pandas as pd

# List of Tuples
students = [('jack',    34, 'Sydney',   'Australia', 0),
            ('Riti',    30, 'Delhi',    'India',     0),
            ('Vikas',   0,  'Mumbai',   'India',     0),
            ('Neelu',   0,  'Bangalore','India',     0),
            ('John',    16, 'New York',  'US',       0),
            ('Mike',    17, 'las vegas', 'US',       0)]

# Create a DataFrame object
df = pd.DataFrame( students,
                   columns=['Name', 'Age', 'City', 'Country', 'Budget'],
                   index=['a', 'b', 'c', 'd', 'e', 'f'])

# Display the DataFrame
print(df)

Output:

    Name  Age       City    Country  Budget
a   jack   34     Sydney  Australia       0
b   Riti   30      Delhi      India       0
c  Vikas    0     Mumbai      India       0
d  Neelu    0  Bangalore      India       0
e   John   16   New York         US       0
f   Mike   17  las vegas         US       0

This DataFrame has six rows and five columns, out of which column ‘Budget’ has all zeros only. Let’s see how we can verify if a column contains only zeros or not in a DataFrame.

Check if a column contains only 0’s in DataFrame

Select the column as a Series object and then compare the series with value 0 and use Series.all() to verify if all values are zero or not in that column. The steps are as follows,

  • Select the column by name using subscript operator of DataFrame i.e. df[‘column_name’]. It gives the column contents as a Pandas Series object.
  • Compare the Series object with 0. It returns a boolean Series of the same size. Each True value in this boolean Series indicates that the corresponding value in the Original Series (selected column) is zero.
  • Check if all values in the boolean Series are True or not. If yes, then it means all values in that column are zero.

For example, let’s check if all values are zero in column ‘Budget’ from the above created DataFrame,

# Check if all values are zero in column 'Budget'
if (df['Budget'] == 0).all():
    print("All values in the column 'Budget' are Zero")
else:
    print("All values in the column 'Budget' are not Zero")

Output:

All values in the column 'Budget' are Zero

We selected the column and then got a boolean series by comparing it with value 0. Then using the all() function, we checked if all the values in Boolean Series are True or not. If all values are True, then it means that all elements in the column are zero.

In this example, the ‘Budget’ column had 0s only; therefore, the returned boolean Series had all True values, and the Series.all() function returned True in this case. Let’s check out a negative example,

Let’s check if all values are zero in column ‘Age’ in the above created DataFrame,

# Check if all values are zero in column 'Age'
if (df['Age'] == 0).all():
    print("All values in the column 'Age' are Zero")
else:
    print("All values in the column 'Age' are not Zero")

Output:

All values in the column 'Age' are not Zero

In this example, all values in column ‘Age’ are not zeros only; therefore, the returned boolean Series had some True and few False values, and the Series.all() function returned False in this case. It proved that all elements in column ‘Age’ are not zero.

The complete working example is as follows,

import pandas as pd

# List of Tuples
students = [('jack',    34, 'Sydney',   'Australia', 0),
            ('Riti',    30, 'Delhi',    'India',     0),
            ('Vikas',   0,  'Mumbai',   'India',     0),
            ('Neelu',   0,  'Bangalore','India',     0),
            ('John',    16, 'New York',  'US',       0),
            ('Mike',    17, 'las vegas', 'US',       0)]

# Create a DataFrame object
df = pd.DataFrame( students,
                   columns=['Name', 'Age', 'City', 'Country', 'Budget'],
                   index=['a', 'b', 'c', 'd', 'e', 'f'])

# Display the DataFrame
print(df)

# Check if all values are zero in column 'Budget'
if (df['Budget'] == 0).all():
    print("All values in the column 'Budget' are Zero")
else:
    print("All values in the column 'Budget' are not Zero")

Output

    Name  Age       City    Country  Budget
a   jack   34     Sydney  Australia       0
b   Riti   30      Delhi      India       0
c  Vikas    0     Mumbai      India       0
d  Neelu    0  Bangalore      India       0
e   John   16   New York         US       0
f   Mike   17  las vegas         US       0


All values in the column 'Budget' are Zero

Summary

We learned how to check if a DataFrame column contains only zeros.

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Scroll to Top