【问题标题】:How to remove rows in a dataframe with more than x number of Null values? [duplicate]如何删除数据框中具有超过 x 个 Null 值的行? [复制]
【发布时间】:2019-05-06 03:58:36
【问题描述】:

我正在尝试删除数据框中具有超过 7 个空值的行。请提出一些有效的方法来实现这一点。

【问题讨论】:

    标签: python-3.x pandas dataframe data-science


    【解决方案1】:

    如果我理解正确,只有当总 nan 连续超过 7 时,您才需要删除行:

    df = df[df.isnull().sum(axis=1) < 7]
    

    这将只保留数据框中 nan 小于 7 的行,并将删除所有 nan > 7 的行。

    【讨论】:

      【解决方案2】:

      dropna 有一个 thresh 参数。从列数中减去您想要的数字。

      thresh : int, optional 需要很多非 NA 值。

      df.dropna(thresh=df.shape[1]-7, axis=0)
      

      样本数据:

      print(df)
           0    1     2     3     4     5     6     7
      0  NaN  NaN   NaN   NaN   NaN   NaN   NaN   NaN
      1  NaN  NaN   NaN   NaN   NaN   NaN   NaN   5.0
      2  6.0  7.0   8.0   9.0   NaN   NaN   NaN   NaN
      3  NaN  NaN  11.0  12.0  13.0  14.0  15.0  16.0
      
      df.dropna(thresh=df.shape[1]-7, axis=0)
           0    1     2     3     4     5     6     7
      1  NaN  NaN   NaN   NaN   NaN   NaN   NaN   5.0
      2  6.0  7.0   8.0   9.0   NaN   NaN   NaN   NaN
      3  NaN  NaN  11.0  12.0  13.0  14.0  15.0  16.0
      

      【讨论】:

        猜你喜欢
        • 2019-08-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-02
        • 1970-01-01
        • 2019-03-13
        • 2020-07-28
        • 1970-01-01
        相关资源
        最近更新 更多