在多个列之间添加随机值,并基于列表添加列名

时间:2020-05-13 21:59:26

标签: python pandas dataframe

我正在使用一个数据框,并且有些列具有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

1 个答案:

答案 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。