与np.nan和isnull()比较的区别

2024-09-28 22:28:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我想是的

data[data.agefm.isnull()]

以及

data[data.agefm == numpy.nan]

相当于。但不是,第一个真正返回agefm为NaN的行,而第二个返回空数据帧。感谢省略的值总是等于np.nan,但这似乎是错误的。

agefm列具有float64类型:

(Pdb) data.agefm.describe()
count    2079.000000
mean       20.686388
std         5.002383
min        10.000000
25%        17.000000
50%        20.000000
75%        23.000000
max        46.000000
Name: agefm, dtype: float64

请你解释一下,data[data.agefm == np.nan]到底是什么意思?


Tags: 数据numpy类型datacount错误npnan
1条回答
网友
1楼 · 发布于 2024-09-28 22:28:52

np.nan不可与np.nan相比。。。直接的。

np.nan == np.nan

False

np.isnan(np.nan)

True

也可以

pd.isnull(np.nan)

True

示例 不筛选任何内容,因为没有内容等于np.nan

s = pd.Series([1., np.nan, 2.])
s[s != np.nan]

0    1.0
1    NaN
2    2.0
dtype: float64

过滤空值

s = pd.Series([1., np.nan, 2.])
s[s.notnull()]

0    1.0
2    2.0
dtype: float64

使用奇怪的比较行为来得到我们想要的东西。如果np.nan != np.nanTrue,那么

s = pd.Series([1., np.nan, 2.])
s[s == s]

0    1.0
2    2.0
dtype: float64

只是dropna

s = pd.Series([1., np.nan, 2.])
s.dropna()

0    1.0
2    2.0
dtype: float64

相关问题 更多 >