在pandas中,是否可能仅填充50%的缺失值?

3

这是DF:

amount    cost
5         NaN
7         NaN
9         78.0
6         80.0
12        NaN
14        NaN

我只想填充50%的NAN,以便获得类似以下的结果:

amount    cost
5        'hello'
7         NaN
9         78.0
6         80.0
12        NaN
14       'hello'

如果缺失的数据很多,是否有可能用更大的数据集来填充其中的28%缺失数据。

谢谢帮助。

2个回答

2
我们可以做到。
idx=df.index[df.cost.isna()]
df.loc[np.random.choice(idx, size=int(len(idx)/2) ,replace=False),'cost']='somevalue'
df
Out[16]: 
   amount       cost
0       5        NaN
1       7  somevalue
2       9         78
3       6         80
4      12  somevalue
5      14        NaN

1
尝试使用 df.update()
nans = df.loc[df.cost.isna(), ]
nans.iloc[:int(len(nans) * 0.5), 'cost'] = 'hello'
df.update(nans.cost)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接