查找包含NaN的行的indeces

时间:2016-11-16 14:22:44

标签: python pandas numpy

在pandas数据框中

matrix

我想找到包含NaN的行(索引)。

在列中找到NaN我会做

  idx_nan = matrix.columns[np.isnan(matrix).any(axis=1)]

但它不适用于matrix.rows

在行中查找项目的等价物是什么?

1 个答案:

答案 0 :(得分:5)

我认为DataFrame.isnullany需要boolean indexing

print (df[df.isnull().any(1)].index)

样品:

df = pd.DataFrame({'A':[1,2,3],
                   'B':[4,5,6],
                   'C':[np.nan,8,9],
                   'D':[1,3,5],
                   'E':[5,3,6],
                   'F':[7,4,3]})

print (df)
   A  B    C  D  E  F
0  1  4  NaN  1  5  7
1  2  5  8.0  3  3  4
2  3  6  9.0  5  6  3

print (df[df.isnull().any(1)].index)
Int64Index([0], dtype='int64')

另一种解决方案:

idx_nan = df[np.isnan(df).any(axis=1)].index
print (idx_nan)   
Int64Index([0], dtype='int64')
idx_nan = df.index[np.isnan(df).any(axis=1)]
print (idx_nan)