Reputation: 23
example of a row in my data frame:
col1 col2 col3 col4 col5 col6
1 A B C D E F
I want to create different permutations of col1,2,3 and col4,5,6
so my data frame should look like this:
col1 col2 col3 col4 col5 col6
1 A B C D E F
2 B C A D E F
3 C A B D E F
4 A C B D E F
5 B A C D E F
6 A B C E F D
7 A B C F E D
8 A B C F D E
...
tried itertools but it only allows me to shuffle the data vertically? Any help would be appreciated :)
Upvotes: 0
Views: 414
Reputation: 76937
Here's one approach
In [1609]: import itertools
In [1610]: vals = df.values[0]
In [1611]: b1 = list(itertools.permutations(vals[:3], 3))
In [1612]: b2 = list(itertools.permutations(vals[3:], 3))
In [1613]: pd.DataFrame([y + x for x in b2 for y in b1], columns=df.columns)
Out[1613]:
col1 col2 col3 col4 col5 col6
0 A B C D E F
1 A C B D E F
2 B A C D E F
3 B C A D E F
4 C A B D E F
5 C B A D E F
6 A B C D F E
7 A C B D F E
8 B A C D F E
9 B C A D F E
...............................
...............................
Upvotes: 2