您可以使用多个布尔条件来测试当前值和先前值是否为
NaN:
In [3]:df = pd.Dataframe({'a':[1,3,np.NaN, np.NaN, 4, np.NaN, 6,7,8]})dfOut[3]: a0 11 32 NaN3 NaN4 45 NaN6 67 78 8In [6]:df[(df.a.isnull()) & (df.a.shift().isnull())]Out[6]: a3 NaN如果要查找连续
NaNs出现的位置,并且要查找两个以上的位置,可以执行以下操作:
In [38]:df = pd.Dataframe({'a':[1,2,np.NaN, np.NaN, np.NaN, 6,7,8,9,10,np.NaN,np.NaN,13,14]})dfOut[38]: a0 11 22 NaN3 NaN4 NaN5 66 77 88 99 1010 NaN11 NaN12 1313 14In [41]:df.a.isnull().astype(int).groupby(df.a.notnull().astype(int).cumsum()).sum()Out[41]:a1 02 33 04 05 06 07 28 09 0Name: a, dtype: int32


