Pandas DataFrame 中大于阈值的连续 NaN

Noq*_*que 5 python dataframe pandas

我想在 Pandas DataFrame 中找到连续 NaN 的那些索引,其中超过 3 个连续 NaN 返回它们的大小。那是:

58234         NaN
58235         NaN
58236    0.424323
58237    0.424323
58238         NaN
58239         NaN
58240         NaN
58241         NaN
58242         NaN
58245         NaN
58246    1.483380
58247    1.483380
Run Code Online (Sandbox Code Playgroud)

应该返回类似 (58238, 6) 的内容。返回的实际格式并不重要。我发现了以下内容。

df.a.isnull().astype(int).groupby(df.a.notnull().astype(int).cumsum()).sum()
Run Code Online (Sandbox Code Playgroud)

但它没有为每个索引返回正确的值。这个问题可能与用熊猫识别连续的 NaN非常相似, 但任何帮助都将不胜感激,因为我是熊猫的菜鸟。

WeN*_*Ben 6

我分解了步骤:

df['Group']=df.a.notnull().astype(int).cumsum()
df=df[df.a.isnull()]
df=df[df.Group.isin(df.Group.value_counts()[df.Group.value_counts()>3].index)]
df['count']=df.groupby('Group')['Group'].transform('size')
df.drop_duplicates(['Group'],keep='first')
Out[734]: 
        a  Group  count
ID                     
58238 NaN      2      6
Run Code Online (Sandbox Code Playgroud)