Python/Pandas: counting the number of missing/NaN in each row

I've got a dataset with a big number of rows. Some of the values are NaN, like this:

In [91]: df Out[91]: 1 3 1 1 1 1 3 1 1 1 2 3 1 1 1 1 1 NaN NaN NaN 1 3 1 1 1 1 1 1 1 1 

And I want to count the number of NaN values in each string, it would be like this:

In [91]: list = <somecode with df> In [92]: list Out[91]: [0, 0, 0, 3, 0, 0] 

What is the best and fastest way to do it?

1

1 Answer

You could first find if element is NaN or not by isnull() and then take row-wise sum(axis=1)

In [195]: df.isnull().sum(axis=1) Out[195]: 0 0 1 0 2 0 3 3 4 0 5 0 dtype: int64 

And, if you want the output as list, you can

In [196]: df.isnull().sum(axis=1).tolist() Out[196]: [0, 0, 0, 3, 0, 0] 

Or use count like

In [130]: df.shape[1] - df.count(axis=1) Out[130]: 0 0 1 0 2 0 3 3 4 0 5 0 dtype: int64 

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like