Count number of non-NaN entries in every column of Dataframe
Solution 1:
The count()
method returns the number of non-NaN
values in each column:
>>> df1.count()
a 3
b 2
d 1
dtype: int64
Similarly, count(axis=1)
returns the number of non-NaN
values in each row.
Solution 2:
If you want to sum the total count values which are not NAN, one can do;
np.sum(df.count())
Solution 3:
In case you are dealing with empty strings you may want to count them as NA as well :
df.replace('', np.nan).count()
or if you also want to remove blank strings :
df.replace(r'^\s*$', np.nan, regex=True).count()