Pandas 数据框创建为 2 系列的排列?

pra*_*sad 3 python sequences pandas

我有两列的数据集

ColA ColB
1    1 
2    2
3    3
Run Code Online (Sandbox Code Playgroud)

我想创建结果框架

ColA ColB
1    1
1    2
1    3
2    1
2    2
2    3
3    1
3    2
3    3
Run Code Online (Sandbox Code Playgroud)

joh*_*ase 6

你可以用itertools这个

import pandas as pd
import itertools
Run Code Online (Sandbox Code Playgroud)

创建原始数据框

df = pd.DataFrame([[1,2,3]]*2, index=['ColA', 'ColB']).T
Run Code Online (Sandbox Code Playgroud)

排列您感兴趣的数据帧的两列:

df2 = pd.DataFrame([e for e in itertools.product(df.ColA, df.ColB)], columns=df.columns)

df2
    ColA  ColB
0   1     1
1   1     2
2   1     3
3   2     1
4   2     2
5   2     3
6   3     1
7   3     2
8   3     3
Run Code Online (Sandbox Code Playgroud)