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