缺少值:为什么isull()不报告NaN

时间:2019-12-19 20:17:10

标签: python pandas dataframe

想知道NULL(我的意思是空单元格)是否与python中的NaNna不同。我正在检查有关缺失值的数据集。但是熊猫似乎并没有报告所有缺失的值。

df2.isnull().any()
id          False
trip_id     False
distance    False
duration    False
speed       False
foot        False
bike        False
car         False
bus         False
metro       False
mode         True
dtype: bool

df2.isnull().any().sum()
1

但是,仅进一步检查,我发现2个缺失值:

df2.head(10)
+---+-----------+---------+----------+----------+-------+-------+-------+-------+-------+-------+-------+
|   |    id     | trip_id | distance | duration | speed | foot  | bike  |  car  |  bus  | metro | mode  |
+---+-----------+---------+----------+----------+-------+-------+-------+-------+-------+-------+-------+
| 0 | 441814000 |  441814 | 10632.93 |     2076 | 5.12  | False | False | True  | False | False | car   |
| 1 | 442313000 |  442313 | 738.02   |     2075 | 0.36  | True  | False | False | False | False | foot  |
| 2 | 442795000 |  442795 | 5759.29  |     3879 | 1.48  | True  | False | False | False | False | NaN   |
| 3 | 441817000 |  441817 | 31110.93 |     2948 | 10.55 | False | False | True  | False | False | car   |
| 4 | 442316000 |  442316 | 49636.50 |     2971 | 16.71 | False | False | True  | False | False | car   |
| 5 | 441316000 |  441316 | 9736.87  |     3185 | 3.06  | True  | False | True  | False | False | car   |
| 6 | 441818000 |  441818 | 10027.53 |     1181 | 8.49  | False | False | True  | False | False | car   |
| 7 | 442798000 |  442798 | 1862.62  |     2039 | 0.91  | True  | False | False | False | False | foot  |
| 8 | 442318000 |  442318 | 39738.04 |     4468 | 8.89  | True  | False | False | False | True  | metro |
| 9 | 441318000 |  441318 | 18472.13 |     5670 | 3.26  | True  | False | False | False | False | NaN   |
+---+-----------+---------+----------+----------+-------+-------+-------+-------+-------+-------+-------+

我很受伤,为什么isnull().any.sum()仅报告一个NaN

1 个答案:

答案 0 :(得分:1)

对于您而言,这是因为您正在使用.any(),如果任何值是NaN,您可能只想返回isnull().sum()

编辑:这将为您提供每一列的计数,如果您想要一个总值,则可以像ayhan提到的那样进行isnull().sum().sum()