【问题标题】:Check if a Pandas Series has 6+ Continuous Missing Values检查 Pandas 系列是否有 6 个以上的连续缺失值
【发布时间】:2021-11-04 14:01:11
【问题描述】:

我知道很容易检查熊猫系列中有多少缺失值。如果我想检查 Pandas 系列是否有 6+ 个连续缺失值条目怎么办?

【问题讨论】:

    标签: pandas


    【解决方案1】:
    mask = temp_df.loc[:,i].isna()
    max_missing_val = temp_df.loc[:,i][mask].groupby((~mask).cumsum()[mask]).agg(['size'])
    if len(max_missing_val) == 0:
        max_missing_val = 0
    else:
        max_missing_val = max_missing_val.max()[0]
    

    参考:Counting continuous nan values in panda Time series

    【讨论】:

      【解决方案2】:

      您可以利用cumsum 创建连续的NaN值组:

      s = pd.Series(
          [np.nan, 1, 2, np.nan, np.nan, np.nan, 3, 4, np.nan, np.nan]*2
      )
      
      # create groups of continuous na/non na values
      group = s.isna().ne(s.shift().isna()).cumsum()
      
      # set threshold for minimum group size, here 3 instead of 6
      threshold = 3
      
      group_size = s.groupby(group).transform('size')
      
      # check for rows with 3+ continous NaN values
      print(s[(group % 2 == 0) & (group_size.ge(threshold))])
      
      # output
      
      3    NaN
      4    NaN
      5    NaN
      8    NaN
      9    NaN
      10   NaN
      13   NaN
      14   NaN
      15   NaN
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-01-13
        • 2020-02-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-16
        • 2011-06-23
        • 2015-05-07
        相关资源
        最近更新 更多