Python - isnull().sum() 与 isnull().count()

标签 python null nan notnull

所以我目前正在完成泰坦尼克号数据集的教程 ( https://www.kaggle.com/c/titanic/data )。 现在我正在尝试一些可能相关的新事物。

它的信息是: enter image description here891 个条目(红色星号),以及具有 NaN 值的列(蓝色破折号)


当我去查找缺失值的一些摘要时,我对 .sum().count() 感到困惑:

enter image description here

在上面的代码中,.sum() 对于每个空值实例都加一。因此,输出似乎是数据框中每列有多少个缺失条目的值。 (这就是我想要的)


但是如果我们执行 .count(),无论我们是否使用 .isnull().count(),每列都会得到 891 > 或 .notnull().count()

enter image description here

所以我的问题是:

.count() 在此上下文中意味着什么?

我认为它会计算所需方法的每个实例(在本例中为 null 或非 null 条目的每个实例;基本上就是 .sum() 所做的)。

还有;我对 .sum() 的使用方式的“定义”是否正确?

最佳答案

只要打印出train_df.isnull()的数据,你就会看到它。

# data analysis and wrangling
import pandas as pd
import numpy as np

# visualization
import seaborn as sns
import matplotlib.pyplot as plt
%matplotlib inline

train_df = pd.read_csv('train.csv')
print(train_df.isnull())

结果:

    PassengerId  Survived  Pclass   Name    Sex    Age  SibSp  Parch  Ticket  \
    0          False     False   False  False  False  False  False  False   False   
    1          False     False   False  False  False  False  False  False   False   
    2          False     False   False  False  False  False  False  False   False   
    3          False     False   False  False  False  False  False  False   False   
    4          False     False   False  False  False  False  False  False   False   
    ..           ...       ...     ...    ...    ...    ...    ...    ...     ...   
    886        False     False   False  False  False  False  False  False   False   
    887        False     False   False  False  False  False  False  False   False   
    888        False     False   False  False  False   True  False  False   False   
    889        False     False   False  False  False  False  False  False   False   
    890        False     False   False  False  False  False  False  False   False 

它有 891 行,充满了 True 和 False。

  1. 当您使用sum()时,它将返回每列的总和,将 true(=1) 和 false(= 0) 加在一起。就像这样
print(False+False+True+True)
    2
  • 当您使用count()时,它仅返回行数
  • 当然,无论您使用 .isnull().count() 还是 .notnull().count(),每列都会得到 891。

    关于Python - isnull().sum() 与 isnull().count(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60249807/

    相关文章:

    python - 裁剪矩阵的 nan 行和列,但保持正方形

    python - 扫描由未知字符分隔的两个整数

    python - 逻辑向量作为 Python 中的索引?

    python -/etc/init.d sh 脚本

    postgresql - 整数 : "null" 的无效输入语法

    optimization - 是否可以让 isnan() 在 gfortran -O3 -ffast-math 中工作?

    python - 通过python程序访问网络文件夹

    javascript - document.getElementById 抛出 TypeError

    python - 如何在 psycopg 中使用 SELECT 查询查找空值?

    c++ - 为什么这个返回nan?