[英]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.