簡體   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