我有一个数据框,其中一列有显着的编号。纳特我正在使用isnull()对其进行过滤,但似乎无法正常工作。我正在尝试将其中一列中的值为空的所有行过滤到另一数据框中。
该列的dtype是datetime。
main['Last Campaign date']
具有以下输出:
0 08-03-2019
1 08-03-2019
2 08-03-2019
3 08-03-2019
4 08-03-2019
5 08-03-2019
6 08-03-2019
7 08-03-2019
8 08-03-2019
9 08-03-2019
10 08-03-2019
11 08-03-2019
12 08-03-2019
13 08-03-2019
14 08-03-2019
15 08-03-2019
16 08-03-2019
17 08-03-2019
18 08-03-2019
19 08-03-2019
20 08-03-2019
21 08-03-2019
22 08-03-2019
23 08-03-2019
24 08-03-2019
25 08-03-2019
26 08-03-2019
27 08-03-2019
28 08-03-2019
29 08-03-2019
...
172801 NaT
172802 NaT
172803 NaT
172804 NaT
172805 NaT
172806 NaT
172807 NaT
172808 NaT
172809 NaT
172810 NaT
172811 NaT
172812 NaT
172813 NaT
172814 NaT
172815 NaT
172816 NaT
172817 NaT
172818 NaT
172819 NaT
172820 NaT
172821 NaT
172822 NaT
172823 NaT
172824 NaT
172825 NaT
172826 NaT
172827 NaT
172828 NaT
172829 NaT
172830 NaT
但是当我使用以下代码时,它输出0
len(main[main['Last Campaign date'].isnull()])
我尝试使用:
main.replace('NaT', np.nan)
len(main[main['Last Campaign date'] == np.nan])
它仍然是0。这对我来说似乎很奇怪,我认为这与列的dtype是datetime有关。
答案 0 :(得分:2)
您可以这样处理:
df[pd.to_datetime(df['Last Campaign date']).isna()]
请注意,使用==
的相等声明不能产生使用np.nan
的预期结果:
np.nan == np.nan
False
答案 1 :(得分:0)
尝试main['Last Campaign date'].isna().sum()
如果您只是想计算它们。否则,如果您可以使用main.replace(pd.NaT, np.nan)