2017-10-20 33 views
1

假设我们有一些数据系列的最佳方式:什么是得到的NaN指数在大熊猫数据系列

0 'one' 
1 'two' 
2 NAN 
3 'three' 
4 NAN 
5 NAN 

现在我想获得的所有NAN元素的indecies。因此,使用python的大熊猫LIB我会做这样的事情:

import pandas as pd 
import numpy as np 


data = pd.Series(['one', 'two', np.nan, 'three', np.nan, np.nan]) 
nan_index = data.index.difference(data.dropna().index) 

但是,我得到这不是做这件事的pandonic方式的感觉。

回答

1

通过使用isnull

data[data.isnull()].index 
Out[739]: Int64Index([2, 4, 5], dtype='int64') 

或者

data.isnull().nonzero() 
+1

哎,使用'非零()' - 是一个绝妙的主意! – MaxU

+1

@MaxU谢谢你,伙计〜 – Wen

1
In [11]: data.index[data.isnull()] 
Out[11]: Int64Index([2, 4, 5], dtype='int64') 

In [12]: np.where(data.isnull())[0] 
Out[12]: array([2, 4, 5], dtype=int64)