首页 > 解决方案 > 用范围内的随机值替换 NaN

问题描述

我正在使用此代码用范围内的随机值替换 NaN

import numpy as np
def processNan (x):
     return np.random.choice([1.0, 2.0])
assure['codeTypePieceIdentite'] = assure['codeTypePieceIdentite'].apply(lambda x: processNan(x) if x is nan else x)

由于某种原因它不起作用没有任何变化

结果

标签: pythonpandasdataframerandomjupyter-notebook

解决方案


尽可能避免使用.apply,它不是最佳解决方案,因为它没有利用矢量化。在这种情况下,您可以执行以下操作:

mask = df["codeTypePieceIdentite"].isna()
df.loc[mask, "codeTypePieceIdentite"] = np.random.choice([1,2], mask.sum())

推荐阅读