dhecloud
dhecloud

Reputation: 23

How do I create permutations of the data in the same row from a pandas dataframe?

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

Answers (1)

Zero
Zero

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

Related Questions