Find if any column in pandas dataframe is NULL and state this in new column

Question:

I have a dataframe, something like this

import pandas as pd
 
dic = {'animal':["cat", "dog", "rabbit"],
        'colour': ["yellow", None, "red"],
        'size':[None, "large", "small"]}
 
df = pd.DataFrame(dic)

   animal  colour   size
0     cat  yellow   None
1     dog    None  large
2  rabbit     red  small

I want to create a new column that contains True if any other column is null and False if not.

   animal  colour   size   bool
0     cat  yellow   None   True
1     dog    None  large   True
2  rabbit     red  small  False

How do I do this?

Asked By: lhmarsden

||

Answers:

There are 2 functions for that: pandas.isna and pandas.any:

df['bool'] = df.isna().any(axis = 1)
Answered By: r.user.05apr

You can use the following command:

df['bool'] = df.isna().sum(axis=1).astype(bool)

the idea behind this line of code is that True is casted to 1 in bool -> int conversions (implicitly done by the .sum(axis=1) method) and that any non zero integer is casted to True by int -> bool conversions (explicitly done by the .astype(bool) method).

Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.