n = 100 # (n=height * width)
height = 10
width = 10
column = [1,2,3,4,5,6,7,8,9,10]
indices = [1,2,3,4,5,6,7,8,9,10]
Rack2 = pd.DataFrame(np.random.choice(np.arange(n),size=(height, width), replace=False), index=list(indices), columns=list(column))
Rack = Rack2.sort_index(ascending=False)
a = np.repeat([True,False], Rack.size//2)
b = np.random.shuffle(a)
a = a.reshape(Rack.shape)
SI = Rack.mask(a)
RI = Rack.where(a)
StorageSet = SI.stack()
ss=dfStorage.index
RetrievalSet = RI.stack()
tt=D3.index
在上面的 python 代碼中,有一個 10x10 Rack。機架的一半(50 件)由存盤物品組成,另一半由檢索物品組成。
我想做的不是機架大小的一半,但如果我有一個 10x10 機架,例如,該資料框的 30 個是存盤專案。其余 70 項中有 30 項是檢索項。我怎樣才能做到這一點?
uj5u.com熱心網友回復:
您可以通過對代碼進行幾次修改來做到這一點。首先更改初始化a:
samp_size = 30
a = np.hstack([np.repeat(0, samp_size), np.repeat(1, samp_size), np.repeat(np.nan, n - (2 * samp_size)])
然后你可以得到SI和RI:
SI = Rack.where(a==0)
RI = Rack.where(a==1)
您的其余代碼應該可以正常作業。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/479035.html
上一篇:如何按用戶ID分組到特定行?
