你可以使用fillna
来替代apply
。
df.fillna('o')
了解更多有关处理缺失数据的信息。你也可以像@Psidom所提到的那样使用pd.isnull()
来结合apply
方法,但在这种情况下,你应该真正使用内置函数fillna
。
np.nan
并不会返回您期望的值,为了创建有效的谓词,您可以使用pd.isnull
:
df = pd.DataFrame(index=range(0,3),columns=range(0,3))
df[1][2] = 'a'
f = lambda x: 'o' if pd.isnull(x) else x
df.applymap(f)
# 0 1 2
#0 o o o
#1 o o o
#2 o a o
np.nan
转化为布尔值:bool(np.nan)
# True
o
。