列出了加载到pandas数据帧'df2'中的人员的属性.对于清理,我想用np.nan替换零值(0或'0').
df2.dtypes
ID object
Name object
Weight float64
Height float64
BootSize object
SuitSize object
Type object
dtype: object
Run Code Online (Sandbox Code Playgroud)
将值0设置为np.nan的工作代码:
df2.loc[df2['Weight'] == 0,'Weight'] = np.nan
df2.loc[df2['Height'] == 0,'Height'] = np.nan
df2.loc[df2['BootSize'] == '0','BootSize'] = np.nan
df2.loc[df2['SuitSize'] == '0','SuitSize'] = np.nan
Run Code Online (Sandbox Code Playgroud)
相信这可以用类似/更短的方式完成:
df2[["Weight","Height","BootSize","SuitSize"]].astype(str).replace('0',np.nan)
Run Code Online (Sandbox Code Playgroud)
但是上述方法不起作用.零保持在df2.如何解决这个问题?