是否可以只填写熊猫缺失值的50%?

时间:2020-07-31 22:04:41

标签: python-3.x pandas

这是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'

是否有可能用更大的dataSet填充28%的丢失数据。

感谢帮助。

2 个答案:

答案 0 :(得分: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 :(得分:1)

尝试使用df.update()

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