如何使用applymap,lambda和dataframe一起过滤/修改python中的数据帧?

JPC*_*JPC 4 python lambda function pandas

所以,我试图弄明白如何更换NaNpd.DataFrame..?在这个示例中,我创建了3x3数据帧,其中包含值,df[1][2] = 'a'其余为NaN

我的理解是,我可以使用if,在lambda做下面的事情.但结果不是我所期望的,它会覆盖'a'.我仍然希望'a'保持现状,只改变到'o'哪里NaN......任何建议都将受到赞赏.

在此输入图像描述

df = pd.DataFrame(index=range(0,3),columns=range(0,3))
df[1][2] = 'a'
f = lambda x: 'o' if np.nan else x
df.applymap(f)
Run Code Online (Sandbox Code Playgroud)

MaT*_*MaX 6

而不是使用apply,你可以使用fillna.

df.fillna('o')
Run Code Online (Sandbox Code Playgroud)

有关使用缺失数据的更多信息.您也可以在@Psidom中使用applywith pd.isnull()mentaioned.但在这种情况下,您应该使用内置函数fillna.