У меня есть следующий фрейм данных формы:
1 2 3 4 5 6 7 8
A C C T G A T C
C A G T T A D N
Y F V H Q A F D
Мне нужно случайным образом выбрать столбец k раз, где k - количество столбцовв данном примере. Моя программа создает список пустых списков размером k , а затем случайным образом выбирает столбец данных из фрейма данных для добавления в список. Каждый список должен быть уникальным и не может иметь дубликатов.
В приведенном выше примере с фреймом данных ожидаемый результат должен выглядеть примерно так:
[[2][4][6][1][7][3][5][8]]
Однако я получаю результаты типа:
[[1][1][3][6][7][8][8][2]]
Что является наиболее питоническимспособ сделать это? Вот моя жалкая попытка:
k = len(df.columns)
k_clusters = [[] for i in range(k)]
for i in range(len(k_clusters)):
for j in range(i + 1, len(k_clusters)):
k_clusters[i].append((df.sample(1, axis=1)))
if k_clusters[i] == k_clusters[j]:
k_clusters[j].pop(0)
k_clusters[j].append(df.sample(1, axis=1)