我有一個DataFrame,df
,包含幾列。 df
中的一些值是NaN
。我想用一個有效值替換每個NaN
,通過從給定列中的其他值隨機抽樣來選擇。熊貓:使用列值的隨機採樣替換NaN
例如,如果:
df[work] = [4, 7, NaN, 4]
我想和時間4 2/3和71/3的時候更換df[work][2]
。
這裏是我的嘗試:
def resample_fillna(df):
for col in df.columns:
# get series consisting of non-NaN values
valid_series = df[col].dropna()
nan_indices = np.argwhere(np.isnan(df[col]))
for nan_index in nan_indices:
df[col][nan_index] = valid_series.sample(n=1)
我想有一個更好的,更Python的方式。有什麼想法嗎?
謝謝!
您是否用相同的隨機值或每個不同的隨機值替換所有缺失值? –