我有一个包含预处理数据的数据框,这样每 4 行是一个序列(稍后将被重塑并用于 lstm 训练)。
我想打乱数据框,但我想保持每个行序列不变。例如: a = [1,2,3,4,10,11,12,13,20,21,22,23]将变成类似:a = [20,21,22,23,1,2,3,4,10,11,12,13]。
df.sample(frac=1) 是不够的,因为它会破坏序列。
Solution , thanks to @Wen-Ben:
seq_length = 4
length_array = np.arange((df.shape[0]//seq_length)*seq_length)
trunc_data = df.head((df.shape[0]//seq_length)*seq_length)
d = {x : y for x, y in trunc_data.groupby(length_array//seq_length)}
yourdf = pd.concat([d.get(x) for x in np.random.choice(len(d),len(d.keys()),replace=False)])
天涯尽头无女友
三国纷争
BIG阳
相关分类