所以我目前正在完成泰坦尼克号数据集的教程 ( https://www.kaggle.com/c/titanic/data )。 现在我正在尝试一些可能相关的新事物。
它的信息是: 有 891 个条目(红色星号),以及具有 NaN 值的列(蓝色破折号)。
当我去查找缺失值的一些摘要时,我对 .sum()
和 .count()
感到困惑:
在上面的代码中,.sum()
对于每个空值实例都加一。因此,输出似乎是数据框中每列有多少个缺失条目的值。 (这就是我想要的)
但是如果我们执行 .count()
,无论我们是否使用 .isnull().count()
,每列都会得到 891 > 或 .notnull().count()
。
所以我的问题是:
.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。
- 当您使用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/