【问题标题】:Python, Pandas : Return only those rows which have missing valuesPython,Pandas:只返回那些有缺失值的行
【发布时间】:2015-08-07 10:48:51
【问题描述】:

在 Python 中使用 Pandas 时...

我正在处理一个包含一些缺失值的数据集,我想返回一个仅包含那些缺失数据的行的数据框。有什么好办法吗?

(我目前执行此操作的方法是一种低效的“查看没有缺失值的数据框中没有哪些索引,然后从这些索引中创建一个 df。”)

【问题讨论】:

    标签: python pandas missing-data


    【解决方案1】:

    您可以使用anyaxis=1 每行检查至少一个True,然后使用boolean indexing 过滤:

    null_data = df[df.isnull().any(axis=1)]
    

    【讨论】:

    • df.isnull() 在 0.23 之后返回 DataFrame。使用df.isnull().values.any(axis=1) 会快一点。
    【解决方案2】:
    df.isnull().any(axis = 1).sum()
    

    这会为您提供至少有一个缺失数据的总行数

    【讨论】:

      【解决方案3】:

      如果您只想查看包含 NaN 值的行,您可以这样做:

      data_frame[data_frame.iloc[:, insert column number here]=='NaN']
      

      【讨论】:

        【解决方案4】:

        你可以这样使用代码

        sum(df.isnull().any(axis=1))
        

        【讨论】:

          【解决方案5】:

          我刚遇到这个问题,我假设您想查看由我使用的缺失值行组成的数据框部分

          df.loc[df.isnull().any(axis=1)]
          

          【讨论】:

            【解决方案6】:

            如果您正在寻找一种更快的方法来查找数据框中缺失的总行数,您可以使用以下方法:

            sum(df.isnull().values.any(axis=1))

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2019-09-18
              • 2021-06-12
              • 1970-01-01
              • 2016-01-25
              • 1970-01-01
              • 2014-04-29
              • 1970-01-01
              相关资源
              最近更新 更多