我有一个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的方式。有什么想法吗?
谢谢!
您是否用相同的随机值或每个不同的随机值替换所有缺失值? –