您可以将applymap与lambda一起使用,以检查element is None是否如下所示:(构造了一个不同的示例,与原始示例一样,None被强制为np.nan,因为数据类型是float,您将需要一个object类型列来按原样保存None,或者如@Evert所注解的那样,None和NaN在数字类型列中无法区分):
df = pd.DataFrame([[None, 3], ["", np.nan]])
df
# 0 1
#0 None 3.0
#1 NaN
df.applymap(lambda x: x is None)
# 0 1
#0 True False
#1 False False
3条答案
按热度按时间ttp71kqs1#
如果要获取每一行的True/False,可以使用以下代码。下面是一个示例,作为以下DataFrame的结果:
如何检查
None
可用:
.isnull()
可用:
.apply
==
或is
None
可用:x1个月6个月1个月x1个月7个月1个月x1个月8个月
不可用:
is
或==
不可用:一个月11个月1x一个月12个月1x一个月13个月1x
如何检查
np.nan
可用:x1米15英寸
可用:
np.isnan
个不可用:
is
或==
或np.nan
bqjvbblv2#
您可以将
applymap
与lambda
一起使用,以检查element is None
是否如下所示:(构造了一个不同的示例,与原始示例一样,None
被强制为np.nan
,因为数据类型是float
,您将需要一个object
类型列来按原样保存None
,或者如@Evert所注解的那样,None
和NaN
在数字类型列中无法区分):hfsqlsce3#
问:如何检查DataFrame / Series中的
None
A:
isna
可以工作,但也会捕获nan
。两个建议:1.使用
x.isna()
并用nan替换none1.如果你真的关心
None
:x.applymap(type) == type(None)
我更喜欢比较类型,因为例如
nan == nan
是假的。在我的例子中,None
s是无意中出现的,所以x[x.isna()] = nan
解决了这个问题。示例:
x = pd.DataFrame([12, False, 0, nan, None]).T
第一个