pandas
正常忽略 NaN
的方式有关,除非明确指定不忽略。>>> pd.Series([float('nan')]).any()
False
>>> pd.Series([float('nan')]).all()
True
>>> pd.Series([float('nan')]).any(skipna=False)
True
>>>
NaN
是假值:>>> bool(float('nan'))
True
any
和all
一致。空迭代对于all
返回True
,对于any
返回False
。这里有一个相关问题。
有趣的是,默认行为似乎与文档不一致:
但请注意:skipna:布尔型,默认为True 排除NA / null值。如果整行/列都是NA,则结果将为NA
>>> pd.Series([float('nan')]).any(skipna=None)
False
>>> pd.Series([float('nan')]).any(skipna=True)
False
>>> pd.Series([float('nan')]).any(skipna=False)
True
>>>
skipna
在 any
和 all
中默认为 True,所以如果 all
为 True,则 any
也应该为 True,不是吗? - Dennis Golomazov
pd.Series([]).any()
和pd.Series([]).all()
。 - MaxU - stand with Ukrainepandas
默认处理NaN的问题。 - juanpa.arrivillagapd.Series([]).all()
返回True
,而all([])
也返回True
(我也无法理解这个...) - MaxU - stand with Ukraine