连续NaN大于Pandas DataFrame中的阈值

que

我想在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

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

df.a.isnull().astype(int).groupby(df.a.notnull().astype(int).cumsum()).sum()

但是它没有为每个索引返回正确的值。这个问题可能与识别连续的NaN与大熊猫非常相似,但是由于我是大熊猫的新手,因此可以提供任何帮助。

BEN_YO

我分解了步骤:

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章