为什么在使用 info() 方法时 NaN 值没有被计为空数据类型?

Why NaN values are not getting counted as null datatypes while using info() method?

我正在使用来自 UCI ML 存储库的信用卡批准数据集。 数据集包含标记为“?”的缺失值

display(cc_apps.tail(17))

    0   1   2   3   4   5   6   7   8   9   10  11  12  13  14  15
673 ?   29.50   2.000   y   p   e   h   2.000   f   f   0   f   g   00256   17  -
674 a   37.33   2.500   u   g   i   h   0.210   f   f   0   f   g   00260   246 -
675 a   41.58   1.040   u   g   aa  v   0.665   f   f   0   f   g   00240   237 -
676 a   30.58   10.665  u   g   q   h   0.085   f   t   12  t   g   00129   3   -
677 b   19.42   7.250   u   g   m   v   0.040   f   t   1   f   g   00100   1   -
678 a   17.92   10.210  u   g   ff  ff  0.000   f   f   0   f   g   00000   50  -
679 a   20.08   1.250   u   g   c   v   0.000   f   f   0   f   g   00000   0   -
680 b   19.50   0.290   u   g   k   v   0.290   f   f   0   f   g   00280   364 -
681 b   27.83   1.000   y   p   d   h   3.000   f   f   0   f   g   00176   537 -
682 b   17.08   3.290   u   g   i   v   0.335   f   f   0   t   g   00140   2   -
683 b   36.42   0.750   y   p   d   v   0.585   f   f   0   f   g   00240   3   -
684 b   40.58   3.290   u   g   m   v   3.500   f   f   0   t   s   00400   0   -
685 b   21.08   10.085  y   p   e   h   1.250   f   f   0   f   g   00260   0   -
686 a   22.67   0.750   u   g   c   v   2.000   f   t   2   t   g   00200   394 -
687 a   25.25   13.500  y   p   ff  ff  2.000   f   t   1   t   g   00200   1   -
688 b   17.92   0.205   u   g   aa  v   0.040   f   f   0   f   g   00280   750 -
689 b   35.00   3.375   u   g   c   h   8.290   f   f   0   t   g   00000   0   -

我转换了这些'?'使用 replace() 方法转换为 NaN。

cc_apps_train = cc_apps_train.replace('?', 'NaN')

但是当我使用 info() 方法打印数据框信息时,它没有显示空值信息。

<class 'pandas.core.frame.DataFrame'>
Int64Index: 462 entries, 382 to 102
Data columns (total 14 columns):
0     462 non-null object
1     462 non-null object
2     462 non-null float64
3     462 non-null object
4     462 non-null object
5     462 non-null object
6     462 non-null object
7     462 non-null float64
8     462 non-null object
9     462 non-null object
10    462 non-null int64
12    462 non-null object
14    462 non-null int64
15    462 non-null object
dtypes: float64(2), int64(2), object(10)
memory usage: 54.1+ KB

有人可以解释一下吗?

你的代码行:

cc_apps_train = cc_apps_train.replace('?', 'NaN')

将字符串 '?' 转换为 字符串 'NaN'。它算作一个 non-null 对象,因为它是一个字符串。将 'NaN' 更改为 numpy.NaN,它应该可以正常工作。