从数据帧中随机抽样
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])
我想生成 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])