Случайный набор данных на основе ключа id

#python #dataset #shuffle

#python #набор данных #перемешать

Вопрос:

Ограничения случайной перетасовки строк в наборе данных: нельзя перетасовывать только строки, а не значения между столбцами

  • np.random.permutation не может работать, потому что он не сохраняет значения по столбцам

  • random.shuffle выдает ошибку ключа

Пример в этой таблице :

введите описание изображения здесь

Как получить разные строки? например, строка 7 становится строкой 2

Комментарии:

1. это не совсем понятно, у вас есть образец, чтобы показать, что вы хотите?

Ответ №1:

Вы можете получить перетасованный фрейм данных, используя DataFrame.sample(...) метод, например:

 import pandas as pd
import numpy as np

df = pd.DataFrame(data=np.random.rand(10,3), columns=['A', 'B', 'C'])
df = df.sample(frac=1)
  

Здесь frac=1 указывает функции перетасовать строки вместо выборки некоторого количества строк. Это приведет к чему-то вроде:

    A         B         C
6  0.539230  0.726644  0.904020
9  0.173626  0.774850  0.914098
5  0.114591  0.344212  0.339833
4  0.159820  0.604845  0.029802
3  0.826250  0.765909  0.422308
1  0.110008  0.523306  0.288052
2  0.616792  0.932205  0.659934
8  0.707413  0.794188  0.214229
7  0.409670  0.706913  0.232815
0  0.048167  0.748322  0.014002
  

Комментарии:

1. Именно то, что я искал!