Как получить каждую возможную перестановку из списка чисел и сохранить в кадре данных? - PullRequest
0 голосов
/ 21 декабря 2018

У меня есть список чисел, 1-6, которые мне нужны при каждой возможной перестановке, и которые нужно хранить в кадре данных.Но мне также нужно, чтобы в кадре данных были столбцы с именами «Месяц 1», «Месяц 2», «Месяц 3» и т. Д.

Так что я хотел бы иметь что-то вроде этого:

Month 1  Month 2  Month 3  Month 4  Month 5  Month 6
1        2        3        4        5        6
1        2        3        4        6        5
1        2        3        5        4        6
1        2        3        5        6        4

etc.

Мне нужно сохранить все 720 возможных перестановок.

Как мне это сделать?Я пытался использовать itertools.permutation, но у меня проблемы.

Ответы [ 3 ]

0 голосов
/ 21 декабря 2018

Я не уверен, в чем заключается ваша проблема с получением кадра данных из перестановок.Вот мой пример.

from itertools import permutations
a= np.arange(6)
df= pd.DataFrame([comb for comb in permutations(a)],
                 columns=['Month 1','Month 2' ,'Month 3','Month 4','Month 5','Month 6'])
0 голосов
/ 21 декабря 2018

Использование itertools.permutations позволяет вам сделать это:

import pandas as pd
import itertools

a = itertools.permutations([1,2,3,4,5,6])

df = pd.DataFrame(list(a), columns=['Month' + str(i) for i in range(1,7)])

даст:

Month1  Month2  Month3  Month4  Month5  Month6
0   1   2   3   4   5   6
1   1   2   3   4   6   5
2   1   2   3   5   4   6
3   1   2   3   5   6   4
0 голосов
/ 21 декабря 2018
from itertools import permutations
import pandas as pd
h = ['month-{}'.format(i) for i in range(1,7)]
b = [list(i) for i in permutations([i for i in range(1, 7)])]
pd.DataFrame(b, columns=h)

#output 
Out[12]:
     month-1  month-2  month-3  month-4  month-5  month-6
0          1        2        3        4        5        6
1          1        2        3        4        6        5
2          1        2        3        5        4        6
3          1        2        3        5        6        4
4          1        2        3        6        4        5
5          1        2        3        6        5        4
6          1        2        4        3        5        6
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...