我正在使用一个数据框,并且有些列具有NaN。我想用随机值替换那些NaN,并且我试图提出一种快速的方法,而不是一次将lambda函数应用于每个列。我有要修改的列名列表。
以下是我所举的例子:
df
col_a col_b col_c col_d col_e col_f
0 1 2 3 NaN NaN NaN
1 4 5 6 NaN NaN NaN
2 7 8 9 NaN NaN NaN
specific_columns = [col_d, col_e, col_f]
for col in specific_columns in df.columns:
df[col] = df[col].apply(lambda x: np.random.randint(0,10))
理想情况下,我想看到一个类似df的东西:
col_a col_b col_c col_d col_e col_f
0 1 2 3 4 3 3
1 4 5 6 6 5 2
2 7 8 9 9 1 5
答案 0 :(得分:0)
也许是这样吗?
a = len(df.index)
b = len(df.columns)
nans = pd.DataFrame(np.random.randn(a,b), columns=df.columns, index=df.index)
df.update(nans)
这将从正常距离中获取数字,并使用其中的值更新您的NaN。