Я также хотел бы сгруппировать по определенному столбцу и затем перемешать n последовательных строк.
df = pd.DataFrame({'grouper_col':[1,1,1,1,1,1, 2,2,2,2,2,2], 'b':[1,2,3,4,5,6,21,22,23,24,25,26]})
grouper_col b
0 1 1
1 1 2
2 1 3
3 1 4
4 1 5
5 1 6
6 2 21
7 2 22
8 2 23
9 2 24
10 2 25
11 2 26
, а затем перемешать, например, две последовательные строки в каждой группе, указав, например:
grouper_col b
0 1 5
1 1 6
2 1 3
3 1 4
4 1 1
5 1 2
6 2 21
7 2 22
8 2 25
9 2 26
10 2 23
11 2 24
, где две последовательные строки на группу случайным образом перетасовываются с двумя другими последовательными строками в той же группе.