I have a uniform distribution in a pandas dataframe column with a few NaN values I'd like to replace.

Since the data is uniformly distributed, I decided that I would like to fill the null values with random uniform samples drawn from a range of the column's min and max values. I used the following code to get the random uniform sample:

df_copy['ep'] = df_copy['ep'].fillna(value=np.random.uniform(3, 331))

Of course, using **pd.DafaFrame.fillna() **replaces all existing NaNs with the same value. I would like each NaN to be a different value. I assume that a **for** loop could get the job done, but am unsure how to create such a loop to specifically handle these NaN values. Thanks for the help!