Какой простой и эффективный способ перетасовать файл данных в pandas, по строкам или по столбцам? То есть как написать функцию shuffle(df, n, axis=0), которая принимает фрейм данных, количество тасований n, а ось (axis=0 - это строки, axis=1 - столбцы) и возвращает копию кадра данных, который был перетасован n раз.
  Изменить: ключ должен сделать это, не уничтожая ярлыки строки/столбца в кадре данных. Если вы просто перетасовываете df.index, который теряет всю эту информацию. Я хочу, чтобы полученный df был таким же, как оригинал, за исключением того, что порядок строк или порядок столбцов различны.
  Edit2: мой вопрос был неясным. Когда я говорю перетасовывать строки, я имею в виду случайную перетасовку каждой строки. Поэтому, если у вас есть два столбца a и b, я хочу, чтобы каждая строка перетасовывалась сама по себе, так что вы не имеете одинаковых ассоциаций между a и b, как вы, если вы просто переупорядочиваете каждая строка в целом. Что-то вроде:
for 1...n:
  for each col in df: shuffle column
return new_df
Но, надеюсь, более эффективен, чем наивный цикл. Это не работает для меня:
def shuffle(df, n, axis=0):
        shuffled_df = df.copy()
        for k in range(n):
            shuffled_df.apply(np.random.shuffle(shuffled_df.values),axis=axis)
        return shuffled_df
df = pandas.DataFrame({'A':range(10), 'B':range(10)})
shuffle(df, 5)