从数据帧中随机抽样

Random sampling from a dataframe

我想生成 2x6 数据帧,它表示此数据帧的 Rack.Half 充满了存储项,另一半是检索项。 我想做的是随机选择这 12 个项目中的一半,并说它们是存储,其他是检索。 如何随机选择?

我试过random.sample但是这个选择随机columns.Actually我想单独选择随机项目。

假设输入:

   0  1  2  3   4   5
0  0  1  2  3   4   5
1  6  7  8  9  10  11

您可以制作一个随机的 numpy 数组 select/mask 一半的值:

a = np.repeat([True,False], df.size//2)
np.random.shuffle(a)
a = a.reshape(df.shape)

那么select你的两组:

df.mask(a)
     0   1    2    3   4     5
0  NaN NaN  NaN  3.0   4   NaN
1  6.0 NaN  8.0  NaN  10  11.0

df.where(a)
     0  1    2    3   4    5
0  0.0  1  2.0  NaN NaN  5.0
1  NaN  7  NaN  9.0 NaN  NaN

如果您只是想要 6 个随机元素,请使用 nummy.random.choice:

np.random.choice(df.to_numpy(). ravel(), 6, replace=False)

示例:

array([ 4,  5, 11,  7,  8,  3])