Как рандомизировать (или переставить) фрейм данных по строкам и столбцам?

У меня есть такой фрейм данных (df1).

     f1   f2   f3   f4   f5
d1   1    0    1    1    1  
d2   1    0    0    1    0
d3   0    0    0    1    1
d4   0    1    0    0    1

Столбец d1 ... d4 - это имя строки, f1 ... f5 row - это имя столбца.

Чтобы выполнить выборку (df1), я получаю новый фрейм данных с числом 1, таким же, как df1. Таким образом, счетчик 1 сохраняется для всего фрейма данных, но не для каждой строки или каждого столбца.

Можно ли выполнить рандомизацию по строкам или по столбцам?

Я хочу рандомизировать столбец df1 - мудро для каждого столбца, т. е. число 1 в каждом столбце остается неизменным. и каждый столбец нужно изменить хотя бы один раз. Например, у меня может быть рандомизированный df2 следующим образом: (Отметил, что счетчик 1 в каждом столбце остается тем же, но счетчик 1 в каждой строке отличается.

     f1   f2   f3   f4   f5
d1   1    0    0    0    1  
d2   0    1    0    1    1
d3   1    0    0    1    1
d4   0    0    1    1    0

Аналогичным образом, я также хочу рандомизировать строку df1 - для каждой строки, т. е. число 1 в каждой строке остается тем же, и каждая строка должна быть изменена (но количество измененных записей может быть другим). Например, случайный df3 может быть примерно таким:

     f1   f2   f3   f4   f5
d1   0    1    1    1    1  <- two entries are different
d2   0    0    1    0    1  <- four entries are different
d3   1    0    0    0    1  <- two entries are different
d4   0    0    1    0    1  <- two entries are different

PS. Большое спасибо за помощь от Гэвина Симпсона, Джориса Мейс и Чейза за предыдущие ответы на мой предыдущий вопрос о рандомизации двух столбцов.

87
задан ROMANIA_engineer 22 July 2017 в 20:51
поделиться