如何从数据帧创建同一行中的数据排列?

2024-04-26 21:25:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我的数据框中的行示例:

      col1 col2 col3 col4 col5 col6
1     A    B    C    D    E    F

我想创建col1,2,3和col4,5,6的不同排列

所以我的数据框应该是这样的:

      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
...

尝试过itertools,但它只允许我垂直移动数据? 任何帮助都将不胜感激:)


Tags: 数据示例col2col3col1itertoolscol4col5
1条回答
网友
1楼 · 发布于 2024-04-26 21:25:57

这里有一种方法

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
...............................
...............................

相关问题 更多 >