繁体   English   中英

如何在Dataframe中找到最长的NaN序列?

[英]How to find the longest sequence of NaNs in Dataframe?

假设我有一个这样的数据框:

Time                           A            B           C             D                                                               
2019-06-17 08:45:00     12089.89     12089.89    12087.71      12087.71      
2019-06-17 08:46:00          NaN          NaN    12087.71      12087.91      
2019-06-17 08:47:00          NaN     12088.21    12084.21      12085.21      
2019-06-17 08:48:00          NaN     12090.21         NaN           NaN      
2019-06-17 08:49:00          NaN     12090.21         NaN           NaN     
2019-06-17 08:50:00          NaN          NaN    12504.11           NaN     
2019-06-17 08:51:00          NaN          NaN    12503.11      12503.11    
2019-06-17 08:52:00     12504.11          NaN    12503.11      12503.11      
2019-06-17 08:53:00     12503.61     12503.61    12503.61      12503.61      
2019-06-17 08:54:00     12503.61     12503.61    12503.11      12503.11     

如何在整个df中找到最长的不间断NaN序列的长度? (在示例中为 6 )有效吗?

编辑:忘记强调“有效”这个词,因为 df 大约有 1mio 行长

让我们尝试apply一个用户定义的函数,它cumsum()使用cumsum()来识别块:

def max_na(s):
    isna = s.isna()
    blocks = (~isna).cumsum()
    return isna.groupby(blocks).sum().max()

df.apply(max_na).max()
# 6.0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM