在 table 中查找 NaN 行时 count() 和 sum() 之间的区别
Difference between count() and sum() when finding NaN rows in table
我有这个 table,值,- 一些值是 NaN:
ID Value1 Value2 Value3
12 "filled" "filled" NaN
13 "filled" "filled" "filled"
14 "filled" "filled" NaN
我必须找到 Value3 中缺失的总行数 -
我的密码是
values_missing = values["Value3"].isnull().count()
但是这个returns总行数在table,这显然是错误的
四处游玩,我发现:
values_missing = values["Value3"].isnull().sum()
returns 正确答案,但我很难理解为什么
为什么不使用 count(),因为没有任何东西可以求和(),只有数字或行数?
对于 pandas.DataFrame.count
我们有:
所以在你的情况下:
values["Value3"].isnull()
0 True
1 False
2 True
它出现了 3 次 non-NA。然后如果你在末尾添加 .count()
,你得到的总数是 3.
当您添加 .sum()
时,它会对 .isnull()
函数的真值求和。
你的情况:
values["Value3"].isnull().sum()
2
values["Value3"].notnull().sum()
1
values_missing = values["Value3"].isnull()
returns 一个 pandas 系列。
count()
确实计算了系列中值的数量。
sum()
确实汇总了 True
为 1
且 False
为 0
的所有值。
我有这个 table,值,- 一些值是 NaN:
ID Value1 Value2 Value3
12 "filled" "filled" NaN
13 "filled" "filled" "filled"
14 "filled" "filled" NaN
我必须找到 Value3 中缺失的总行数 -
我的密码是
values_missing = values["Value3"].isnull().count()
但是这个returns总行数在table,这显然是错误的
四处游玩,我发现:
values_missing = values["Value3"].isnull().sum()
returns 正确答案,但我很难理解为什么
为什么不使用 count(),因为没有任何东西可以求和(),只有数字或行数?
对于 pandas.DataFrame.count
我们有:
所以在你的情况下:
values["Value3"].isnull()
0 True
1 False
2 True
它出现了 3 次 non-NA。然后如果你在末尾添加 .count()
,你得到的总数是 3.
当您添加 .sum()
时,它会对 .isnull()
函数的真值求和。
你的情况:
values["Value3"].isnull().sum()
2
values["Value3"].notnull().sum()
1
values_missing = values["Value3"].isnull()
returns 一个 pandas 系列。
count()
确实计算了系列中值的数量。
sum()
确实汇总了 True
为 1
且 False
为 0
的所有值。