pandas 用2-10个NaN随机替换20%的 Dataframe 列?

eagi6jfj  于 2023-02-11  发布在  其他
关注(0)|答案(1)|浏览(92)

我已经使用这个answer将值随机替换为NaN。
我在寻找相同的想法,但也在寻找2-10之间的NaN随机数,如下所示:

pw9qyyiw

pw9qyyiw1#

IIUC,您可以使用:

df = pd.DataFrame({'A': range(1, 11),
                   'B': np.random.random(10)})

# columns other than A
cols = df.columns.difference(['A'])

# assign 2-10 NaNs
import random
df[cols] = df[cols].sample(n=len(df)-random.randint(2, 10))

print(df)

输出:

A         B
0   1       NaN
1   2       NaN
2   3  0.742521
3   4       NaN
4   5  0.648175
5   6  0.574785
6   7  0.958592
7   8  0.704552
8   9       NaN
9  10  0.296980

相关问题