我想用people's Age(其中还包含数值,不仅包括NaN值)替换列中缺少的值,但到目前为止,我try 的所有方法要么无法按我希望的方式工作,要么根本无法工作.
我希望应用一个随机变量生成器,它遵循正态分布,使用该列获得的平均值和标准偏差.
我try 了以下方法:
-
替换为numpy,替换NaN值,但所有值都替换为same number
df_travel['Age'] = df_travel['Age'].replace(np.nan, round(rd.normalvariate(age_mean, age_std),0))
-
Fillna和pandas也将NaN值替换为same number
df_travel['Age'] = df_travel['Age'].fillna(round(rd.normalvariate(age_mean, age_std),0))
-
在带有pandas的数据帧上应用函数,替换NaN值,但不替换also changes all existing numerical values(我只希望填充NaN值)
df_travel['Age'] = df_travel['Age'].where(df_travel['Age'].isnull() == True).apply(lambda v: round(rd.normalvariate(age_mean, age_std),0))
任何 idea 都将不胜感激.提前谢谢.