'index of non "NaN" values in Pandas

From Pandas data frame, how to get index of non "NaN" values?

My data frame is

    A    b     c
0   1    q1    1
1   2    NaN   3
2   3    q2    3
3   4    q1    NaN
4   5    q2    7

And I want the index of the rows in which column b is not NaN. (there can be NaN values in other column e.g. c )

non_nana_index = [0,2,3,4]

Using this non "NaN" index list I want to create new data frame which column b do not have "Nan"

df2=

    A    b     c
0   1    q1    1
1   3    q2    3
2   4    q1    NaN
3   5    q2    7


Solution 1:[1]

Just filter them

In [62]:

df['b'].notnull()

Out[62]:
0     True
1    False
2     True
3     True
4     True
Name: b, dtype: bool
In [63]:

df[df['b'].notnull()]
Out[63]:
   A   b   c
0  1  q1   1
2  3  q2   3
3  4  q1 NaN
4  5  q2   7

Solution 2:[2]

DataFrames have a dropna method:

import pandas
import numpy

d = pandas.DataFrame({'A': [1, 2, 3, numpy.nan], 
                      'b': [1, 2, numpy.nan, 3],
                      'c': [1, numpy.nan, 2, 3]})
d.dropna(subset=['b'])

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1
Solution 2 chthonicdaemon